2018年6月7日木曜日

スマホアプリを作成する為のMONACAのアカウント登録と試食

今回はスマートフォンアプリを作成する為にMONACAというアプリ開発クラウドを利用した。まずログイン時に以下の図1のようなダッシュボードが表示される。
図1 MONACAダッシュボード画面
また、編集内容が反映されているかどうかを確認するため、スマートフォンアプリの方も導入した。
図2 スマホ版MONACA図1
ログインをすると、図2のような画面が表示された。
次に右下のリングメニューをタップすると、図3のようなメニューが表示される。
図3 リングメニュー一覧
リングメニューとしてはそれぞれ
1,ダッシュボード一覧に戻る
2,リロード
3,スクリーンショットの保存
4,検索?
5,ログの表示
6,リングメニューを閉じる
尚、4に関してはグレーアウトしており、タップすることができなかったのであくまで憶測である。
次にアプリケーションの編集を行うため、WEB版に戻り、はじめてのMONACAアプリ「はじめてのMONACAアプリ」というアイコンをクリックすると右に編集一覧が表示される。今回は図4の様に「クラウドIDEで開く」というアイコンをクリックする。
図4 はじめてのMONACAアプリを開いた状態
クラウドIDEを開くをクリックすると、以下の図5の様な画面が表示された。
図5 クラウドIDEで開いた図
クラウドIDEを開いた後左タブのwww>phongape-demo>index.html画面をクリックする事で、indexの編集を行う事ができる。
今回は試しに、図5の20行目に赤線で示されている「Hello Word!」といった文面を変更する。変更を行った後はメニュータブから保存をクリックする事で、編集を保存することができる。
図6 編集後のindex図
保存を行った後、スマートフォンアプリの方で確認をしたところ、図6の様の変更されていることを確認することができた。
次にボタンを押した際に「終了します」といったポップアップが表示されるようなボタンの追加を行う。
図7 ボタン追加図
再びWEBMONACAの方に戻り、23行目に下記のプログラム行を追加した。
また、一つ目のボタンと間をあけるために22行目に「br」を追加する。
<a class="button--large" href="https://www.blogger.com/null" onclick="alert('終了します')">Stop Demo</a>
図8 Stop Demoをタップした状態
編集を行い、保存をした後またスマートフォンアプリの方で確認をしたところ、Start Demoの下にStop Demoといったボタンが表示され、タップすることで、図8のようなポップアップメニューが表示された。
今回はMONACAの表面上の部分だけを体験する事ができたので、次回はMONACAのチュートリアルを確認しながら、具体的な動作の確認、習得を行いたい。

2018年6月6日水曜日

2.受付画面

本日のゼミでは、前回同様にOpenDolphinのパケットをキャプチャし、実際にどのようなデータが流れているのかを確認した。

今回確認を行ったOpenDolphinのパケットは、「受付画面」→「患者選択」→「カルテ画面」に至るまでのパケットである。(図1,2)


図1.OpenDolphinの受付画面
図2.OpenDolphinのカルテ画面

wiresharkを起動させ、キャプチャフィルタを「host 172.16.108.251」に設定して(図3)、キャプチャを開始し、上記に書いた「受付画面」→「患者選択」→「カルテ画面」を行いパケットをキャプチャした。
図3.キャプチャフィルタの設定

その後キャプチャを終了し、キャプチャを確認した結果は図4の通りである。
図4.パケットキャプチャの結果
その後、HTTP~GET(またはPUT)の
キャプチャを追跡→HTTPストリームの確認する。
文字コードをUTF-8に変更し、json部分はJSON Pretty Printより整形をする。
今回は以下の4つのパケットがキャプチャできた。


#1 GET /dolphin/openSource/karte/31,2008-06-06%2013:00:00 HTTP/1.1



GET /dolphin/openSource/karte/31,2008-06-06%2013:00:00 HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:w3415038
Host: 172.16.108.251:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Content-Type: application/json
Content-Length: 2102
Date: Wed, 06 Jun 2018 04:01:40 GMT

{
  "lastDocDate": 1526539476658,
  "created": "2018-05-17",
  "allergies": null,
  "heights": null,
  "weights": null,
  "patientVisits": [
    "2018-05-17T15:22:21"
  ],
  "docInfoList": [
    {
      "departmentCodeSys": null,
      "docPk": 79,
      "purposeDesc": null,
      "purposeCodeSys": null,
      "healthInsuranceCodeSys": null,
      "versionNotes": null,
      "parentId": null,
      "parentIdDesc": null,
      "parentIdCodeSys": null,
      "labtestOrderNumber": null,
      "pvthealthInsuranceModel": null,
      "createrLisence": null,
      "title": "嘔吐・下痢の症状がみられる",
      "departmentDesc": "内科,01,〇〇 〇〇,10004,JPN000000000000",
      "firstConfirmDate": 1526539476658,
      "confirmDate": 1526539476658,
      "facilityName": null,
      "patientName": null,
      "patientId": null,
      "department": "01",
      "parentPk": 0,
      "docId": "6cd5ea01ac10667f015ec41706ccae36",
      "sendClaim": false,
      "parentIdRelation": null,
      "docType": "karte",
      "healthInsurance": "06",
      "healthInsuranceDesc": "06 組合",
      "healthInsuranceGUID": "5b945b2f-5388-4483-b9aa-097d02ad952a",
      "claimDate": 1526539466036,
      "purpose": "recode",
      "patientGender": null,
      "versionNumber": "1.0",
      "hasTreatment": false,
      "hasLaboTest": false,
      "sendLabtest": false,
      "sendMml": false,
      "hasRp": true,
      "hasImage": false,
      "hasMark": false,
      "status": "F"
    },
    {
      "departmentCodeSys": null,
      "docPk": 48,
      "purposeDesc": null,
      "purposeCodeSys": null,
      "healthInsuranceCodeSys": null,
      "versionNotes": null,
      "parentId": null,
      "parentIdDesc": null,
      "parentIdCodeSys": null,
      "labtestOrderNumber": null,
      "pvthealthInsuranceModel": null,
      "createrLisence": null,
      "title": "風邪初診",
      "departmentDesc": "内科,01,〇〇 〇〇,10004,JPN000000000000",
      "firstConfirmDate": 1526538665611,
      "confirmDate": 1526538665611,
      "facilityName": null,
      "patientName": null,
      "patientId": null,
      "department": "01",
      "parentPk": 0,
      "docId": "6cc5df93ac10667f014541e8efd2397f",
      "sendClaim": false,
      "parentIdRelation": null,
      "docType": "karte",
      "healthInsurance": "06",
      "healthInsuranceDesc": "06 組合",
      "healthInsuranceGUID": "5b945b2f-5388-4483-b9aa-097d02ad952a",
      "claimDate": 1526538643879,
      "purpose": "recode",
      "patientGender": null,
      "versionNumber": "1.0",
      "hasTreatment": false,
      "hasLaboTest": false,
      "sendLabtest": false,
      "sendMml": false,
      "hasRp": true,
      "hasImage": false,
      "hasMark": false,
      "status": "F"
    }
  ],
  "memoList": null,
  "id": 33
}


#2 PUT /dolphin/openSource/chartEvent/event HTTP/1.1
PUT /dolphin/openSource/chartEvent/event HTTP/1.1
Accept-Encoding: gzip, deflate
Content-Type: application/json
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:w3415038
Content-Length: 298
Host: 172.16.108.251:8080
Connection: Keep-Alive

{
  "state": 1,
  "byomeiCountToday": 0,
  "patientModel": null,
  "ownerUUID": "w3415038:eacac34c-c8e7-4bd8-9e71-35f3c3653ddc",
  "memo": null,
  "facilityId": "1.3.6.1.4.1.9414.70.1",
  "byomeiCount": 0,
  "ptPk": 31,
  "pvtPk": 34,
  "patientVisitModel": null,
  "issuerUUID": "w3415038:eacac34c-c8e7-4bd8-9e71-35f3c3653ddc",
  "eventType": 0
}

HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Content-Type: application/json
Content-Length: 1
Date: Wed, 06 Jun 2018 04:01:41 GMT

1

#3 GET /dolphin/openSource/karte/documents/79 HTTP/1.1
GET /dolphin/openSource/karte/documents/79 HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:w3415038
Host: 172.16.108.251:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Content-Type: application/json
Content-Length: 10286
Date: Wed, 06 Jun 2018 04:01:42 GMT

{
  "list": [
    {
      "linkId": 0,
      "linkRelation": null,
      "recorded": 1526539476658,
      "userModel": {
        "userId": null,
        "facilityModel": null,
        "sirName": null,
        "givenName": null,
        "commonName": "〇〇 〇〇",
        "departmentModel": null,
        "memo": null,
        "email": null,
        "orcaId": null,
        "useDrugId": null,
        "memberType": null,
        "registeredDate": null,
        "licenseModel": null,
        "roles": null,
        "password": null,
        "id": 13
      },
      "karteBean": {
        "lastDocDate": null,
        "created": null,
        "allergies": null,
        "heights": null,
        "weights": null,
        "patientVisits": null,
        "docInfoList": null,
        "memoList": null,
        "id": 33
      },
      "started": 1526539476658,
      "ended": null,
      "docInfoModel": {
        "departmentCodeSys": null,
        "docPk": 79,
        "purposeDesc": null,
        "purposeCodeSys": null,
        "healthInsuranceCodeSys": null,
        "versionNotes": null,
        "parentId": null,
        "parentIdDesc": null,
        "parentIdCodeSys": null,
        "labtestOrderNumber": null,
        "pvthealthInsuranceModel": null,
        "createrLisence": null,
        "title": "嘔吐・下痢の症状がみられる",
        "departmentDesc": "内科,01,〇〇 〇〇,10004,JPN000000000000",
        "firstConfirmDate": 1526539476658,
        "confirmDate": 1526539476658,
        "facilityName": null,
        "patientName": null,
        "patientId": null,
        "department": "01",
        "parentPk": 0,
        "docId": "6cd5ea01ac10667f015ec41706ccae36",
        "sendClaim": false,
        "parentIdRelation": null,
        "docType": "karte",
        "healthInsurance": "06",
        "healthInsuranceDesc": "06 組合",
        "healthInsuranceGUID": "5b945b2f-5388-4483-b9aa-097d02ad952a",
        "claimDate": 1526539466036,
        "purpose": "recode",
        "patientGender": null,
        "versionNumber": "1.0",
        "hasTreatment": false,
        "hasLaboTest": false,
        "sendLabtest": false,
        "sendMml": false,
        "hasRp": true,
        "hasImage": false,
        "hasMark": false,
        "status": "F"
      },
      "confirmed": 1526539476658,
      "modules": [
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfMTYxIiBjbGFzcz0iamF2YS5iZWFucy5YTUxEZWNvZGVyIj4KIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuUHJvZ3Jlc3NDb3Vyc2UiPgogIDx2b2lkIHByb3BlcnR5PSJmcmVlVGV4dCI+CiAgIDxzdHJpbmc+Jmx0O3NlY3Rpb24gc3RhcnQ9JnF1b3Q7MCZxdW90OyBlbmQ9JnF1b3Q7MTQmcXVvdDsmZ3Q7Jmx0O3BhcmFncmFwaCBzdGFydD0mcXVvdDswJnF1b3Q7IGVuZD0mcXVvdDsxNCZxdW90OyZndDsmbHQ7Y29udGVudCBzdGFydD0mcXVvdDswJnF1b3Q7IGVuZD0mcXVvdDsxMyZxdW90OyBuYW1lPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7Jmx0O3RleHQmZ3Q75ZiU5ZCQ44O75LiL55ei44Gu55eH54q244GM44G/44KJ44KM44KLJmx0Oy90ZXh0Jmd0OyZsdDsvY29udGVudCZndDsmbHQ7Y29udGVudCBzdGFydD0mcXVvdDsxMyZxdW90OyBlbmQ9JnF1b3Q7MTQmcXVvdDsmZ3Q7Jmx0O3RleHQmZ3Q7CiZsdDsvdGV4dCZndDsmbHQ7L2NvbnRlbnQmZ3Q7Jmx0Oy9wYXJhZ3JhcGgmZ3Q7Jmx0Oy9zZWN0aW9uJmd0Ozwvc3RyaW5nPgogIDwvdm9pZD4KIDwvb2JqZWN0Pgo8L2phdmE+Cg==",
          "linkId": 0,
          "linkRelation": null,
          "recorded": 1526539476658,
          "userModel": {
            "userId": null,
            "facilityModel": null,
            "sirName": null,
            "givenName": null,
            "commonName": null,
            "departmentModel": null,
            "memo": null,
            "email": null,
            "orcaId": null,
            "useDrugId": null,
            "memberType": null,
            "registeredDate": null,
            "licenseModel": null,
            "roles": null,
            "password": null,
            "id": 13
          },
          "karteBean": {
            "lastDocDate": null,
            "created": null,
            "allergies": null,
            "heights": null,
            "weights": null,
            "patientVisits": null,
            "docInfoList": null,
            "memoList": null,
            "id": 33
          },
          "started": 1526539476658,
          "ended": null,
          "moduleInfoBean": {
            "stampNumber": 0,
            "stampName": "progressCourse",
            "stampRole": "soaSpec",
            "entity": "progressCourse"
          },
          "confirmed": 1526539476658,
          "status": "F",
          "id": 80
        },
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfMTYxIiBjbGFzcz0iamF2YS5iZWFucy5YTUxEZWNvZGVyIj4KIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuQnVuZGxlRG9scGhpbiI+CiAgPHZvaWQgcHJvcGVydHk9ImJ1bmRsZU51bWJlciI+CiAgIDxzdHJpbmc+MTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iY2xhaW1JdGVtIj4KICAgPGFycmF5IGNsYXNzPSJvcGVuLmRvbHBoaW4uaW5mb21vZGVsLkNsYWltSXRlbSIgbGVuZ3RoPSIxIj4KICAgIDx2b2lkIGluZGV4PSIwIj4KICAgICA8b2JqZWN0IGNsYXNzPSJvcGVuLmRvbHBoaW4uaW5mb21vZGVsLkNsYWltSXRlbSI+CiAgICAgIDx2b2lkIHByb3BlcnR5PSJjbGFzc0NvZGUiPgogICAgICAgPHN0cmluZz4wPC9zdHJpbmc+CiAgICAgIDwvdm9pZD4KICAgICAgPHZvaWQgcHJvcGVydHk9ImNsYXNzQ29kZVN5c3RlbSI+CiAgICAgICA8c3RyaW5nPkNsYWltMDAzPC9zdHJpbmc+CiAgICAgIDwvdm9pZD4KICAgICAgPHZvaWQgcHJvcGVydHk9ImNvZGUiPgogICAgICAgPHN0cmluZz4xMTIwMDc0MTA8L3N0cmluZz4KICAgICAgPC92b2lkPgogICAgICA8dm9pZCBwcm9wZXJ0eT0ibmFtZSI+CiAgICAgICA8c3RyaW5nPuWGjeioujwvc3RyaW5nPgogICAgICA8L3ZvaWQ+CiAgICAgPC9vYmplY3Q+CiAgICA8L3ZvaWQ+CiAgIDwvYXJyYXk+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJjbGFzc0NvZGUiPgogICA8c3RyaW5nPjEyMDwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iY2xhc3NDb2RlU3lzdGVtIj4KICAgPHN0cmluZz5DbGFpbTAwNzwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iY2xhc3NOYW1lIj4KICAgPHN0cmluZz7lho3oqLoo5YaN6Ki6KTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0ib3JkZXJOYW1lIj4KICAgPHN0cmluZz7oqLrmlq3mlpk8L3N0cmluZz4KICA8L3ZvaWQ+CiA8L29iamVjdD4KPC9qYXZhPgo=",
          "linkId": 0,
          "linkRelation": null,
          "recorded": 1526539476658,
          "userModel": {
            "userId": null,
            "facilityModel": null,
            "sirName": null,
            "givenName": null,
            "commonName": null,
            "departmentModel": null,
            "memo": null,
            "email": null,
            "orcaId": null,
            "useDrugId": null,
            "memberType": null,
            "registeredDate": null,
            "licenseModel": null,
            "roles": null,
            "password": null,
            "id": 13
          },
          "karteBean": {
            "lastDocDate": null,
            "created": null,
            "allergies": null,
            "heights": null,
            "weights": null,
            "patientVisits": null,
            "docInfoList": null,
            "memoList": null,
            "id": 33
          },
          "started": 1526539476658,
          "ended": null,
          "moduleInfoBean": {
            "stampNumber": 1,
            "stampName": "再診",
            "stampRole": "p",
            "entity": "baseChargeOrder"
          },
          "confirmed": 1526539476658,
          "status": "F",
          "id": 81
        },
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfMTYxIiBjbGFzcz0iamF2YS5iZWFucy5YTUxEZWNvZGVyIj4KIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuQnVuZGxlTWVkIj4KICA8dm9pZCBwcm9wZXJ0eT0iYWRtaW4iPgogICA8c3RyaW5nPlvnlKjms5VdIO+8keaXpe+8k+Wbnuavjumjn+W+jOOBqzwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iYWRtaW5Db2RlIj4KICAgPHN0cmluZz4wMDEwMDAzMDE8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImJ1bmRsZU51bWJlciI+CiAgIDxzdHJpbmc+Nzwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iY2xhaW1JdGVtIj4KICAgPGFycmF5IGNsYXNzPSJvcGVuLmRvbHBoaW4uaW5mb21vZGVsLkNsYWltSXRlbSIgbGVuZ3RoPSIxIj4KICAgIDx2b2lkIGluZGV4PSIwIj4KICAgICA8b2JqZWN0IGNsYXNzPSJvcGVuLmRvbHBoaW4uaW5mb21vZGVsLkNsYWltSXRlbSI+CiAgICAgIDx2b2lkIHByb3BlcnR5PSJjbGFzc0NvZGUiPgogICAgICAgPHN0cmluZz4yPC9zdHJpbmc+CiAgICAgIDwvdm9pZD4KICAgICAgPHZvaWQgcHJvcGVydHk9ImNsYXNzQ29kZVN5c3RlbSI+CiAgICAgICA8c3RyaW5nPkNsYWltMDAzPC9zdHJpbmc+CiAgICAgIDwvdm9pZD4KICAgICAgPHZvaWQgcHJvcGVydHk9ImNvZGUiPgogICAgICAgPHN0cmluZz42MTA0MjEzMjA8L3N0cmluZz4KICAgICAgPC92b2lkPgogICAgICA8dm9pZCBwcm9wZXJ0eT0ibmFtZSI+CiAgICAgICA8c3RyaW5nPuOCouODgOODqeODvOODiO+8o++8sumMoO+8ke+8kO+9je+9hzwvc3RyaW5nPgogICAgICA8L3ZvaWQ+CiAgICAgIDx2b2lkIHByb3BlcnR5PSJudW1iZXIiPgogICAgICAgPHN0cmluZz4zPC9zdHJpbmc+CiAgICAgIDwvdm9pZD4KICAgICAgPHZvaWQgcHJvcGVydHk9Im51bWJlckNvZGUiPgogICAgICAgPHN0cmluZz4xMDwvc3RyaW5nPgogICAgICA8L3ZvaWQ+CiAgICAgIDx2b2lkIHByb3BlcnR5PSJudW1iZXJDb2RlU3lzdGVtIj4KICAgICAgIDxzdHJpbmc+Q2xhaW0wMDQ8L3N0cmluZz4KICAgICAgPC92b2lkPgogICAgICA8dm9pZCBwcm9wZXJ0eT0idW5pdCI+CiAgICAgICA8c3RyaW5nPumMoDwvc3RyaW5nPgogICAgICA8L3ZvaWQ+CiAgICAgIDx2b2lkIHByb3BlcnR5PSJ5a3pLYm4iPgogICAgICAgPHN0cmluZz4xPC9zdHJpbmc+CiAgICAgIDwvdm9pZD4KICAgICA8L29iamVjdD4KICAgIDwvdm9pZD4KICAgPC9hcnJheT4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsYXNzQ29kZSI+CiAgIDxzdHJpbmc+MjExPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJjbGFzc0NvZGVTeXN0ZW0iPgogICA8c3RyaW5nPkNsYWltMDA3PC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJjbGFzc05hbWUiPgogICA8c3RyaW5nPuaKleiWrCjlhoXmnI3jg7vpoJPmnI3jg7voqr/liaQpKOmZouWGhSk8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9Im1lbW8iPgogICA8c3RyaW5nPuWGheeUqO+8iOmZouWGheWHpuaWuSk8L3N0cmluZz4KICA8L3ZvaWQ+CiA8L29iamVjdD4KPC9qYXZhPgo=",
          "linkId": 0,
          "linkRelation": null,
          "recorded": 1526539476658,
          "userModel": {
            "userId": null,
            "facilityModel": null,
            "sirName": null,
            "givenName": null,
            "commonName": null,
            "departmentModel": null,
            "memo": null,
            "email": null,
            "orcaId": null,
            "useDrugId": null,
            "memberType": null,
            "registeredDate": null,
            "licenseModel": null,
            "roles": null,
            "password": null,
            "id": 13
          },
          "karteBean": {
            "lastDocDate": null,
            "created": null,
            "allergies": null,
            "heights": null,
            "weights": null,
            "patientVisits": null,
            "docInfoList": null,
            "memoList": null,
            "id": 33
          },
          "started": 1526539476658,
          "ended": null,
          "moduleInfoBean": {
            "stampNumber": 2,
            "stampName": "アダラートCR錠10mg",
            "stampRole": "p",
            "entity": "medOrder"
          },
          "confirmed": 1526539476658,
          "status": "F",
          "id": 82
        },
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfMTYxIiBjbGFzcz0iamF2YS5iZWFucy5YTUxEZWNvZGVyIj4KIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuUHJvZ3Jlc3NDb3Vyc2UiPgogIDx2b2lkIHByb3BlcnR5PSJmcmVlVGV4dCI+CiAgIDxzdHJpbmc+Jmx0O3NlY3Rpb24gc3RhcnQ9JnF1b3Q7MCZxdW90OyBlbmQ9JnF1b3Q7NSZxdW90OyZndDsmbHQ7cGFyYWdyYXBoIHN0YXJ0PSZxdW90OzAmcXVvdDsgZW5kPSZxdW90OzImcXVvdDsmZ3Q7Jmx0O2NvbXBvbmVudCBzdGFydD0mcXVvdDswJnF1b3Q7IGVuZD0mcXVvdDsxJnF1b3Q7IG5hbWU9JnF1b3Q7c3RhbXBIb2xkZXImcXVvdDsgY29tcG9uZW50PSZxdW90OzAmcXVvdDsmZ3Q7Jmx0Oy9jb21wb25lbnQmZ3Q7Jmx0O2NvbnRlbnQgc3RhcnQ9JnF1b3Q7MSZxdW90OyBlbmQ9JnF1b3Q7MiZxdW90OyZndDsmbHQ7dGV4dCZndDsKJmx0Oy90ZXh0Jmd0OyZsdDsvY29udGVudCZndDsmbHQ7L3BhcmFncmFwaCZndDsmbHQ7cGFyYWdyYXBoIHN0YXJ0PSZxdW90OzImcXVvdDsgZW5kPSZxdW90OzMmcXVvdDsmZ3Q7Jmx0O2NvbnRlbnQgc3RhcnQ9JnF1b3Q7MiZxdW90OyBlbmQ9JnF1b3Q7MyZxdW90OyZndDsmbHQ7dGV4dCZndDsKJmx0Oy90ZXh0Jmd0OyZsdDsvY29udGVudCZndDsmbHQ7L3BhcmFncmFwaCZndDsmbHQ7cGFyYWdyYXBoIHN0YXJ0PSZxdW90OzMmcXVvdDsgZW5kPSZxdW90OzUmcXVvdDsmZ3Q7Jmx0O2NvbXBvbmVudCBzdGFydD0mcXVvdDszJnF1b3Q7IGVuZD0mcXVvdDs0JnF1b3Q7IG5hbWU9JnF1b3Q7c3RhbXBIb2xkZXImcXVvdDsgY29tcG9uZW50PSZxdW90OzEmcXVvdDsmZ3Q7Jmx0Oy9jb21wb25lbnQmZ3Q7Jmx0O2NvbnRlbnQgc3RhcnQ9JnF1b3Q7NCZxdW90OyBlbmQ9JnF1b3Q7NSZxdW90OyZndDsmbHQ7dGV4dCZndDsKJmx0Oy90ZXh0Jmd0OyZsdDsvY29udGVudCZndDsmbHQ7L3BhcmFncmFwaCZndDsmbHQ7L3NlY3Rpb24mZ3Q7PC9zdHJpbmc+CiAgPC92b2lkPgogPC9vYmplY3Q+CjwvamF2YT4K",
          "linkId": 0,
          "linkRelation": null,
          "recorded": 1526539476658,
          "userModel": {
            "userId": null,
            "facilityModel": null,
            "sirName": null,
            "givenName": null,
            "commonName": null,
            "departmentModel": null,
            "memo": null,
            "email": null,
            "orcaId": null,
            "useDrugId": null,
            "memberType": null,
            "registeredDate": null,
            "licenseModel": null,
            "roles": null,
            "password": null,
            "id": 13
          },
          "karteBean": {
            "lastDocDate": null,
            "created": null,
            "allergies": null,
            "heights": null,
            "weights": null,
            "patientVisits": null,
            "docInfoList": null,
            "memoList": null,
            "id": 33
          },
          "started": 1526539476658,
          "ended": null,
          "moduleInfoBean": {
            "stampNumber": 3,
            "stampName": "progressCourse",
            "stampRole": "pSpec",
            "entity": "progressCourse"
          },
          "confirmed": 1526539476658,
          "status": "F",
          "id": 83
        }
      ],
      "attachment": null,
      "schema": null,
      "status": "F",
      "id": 79
    }
  ]
}




#4 GET /dolphin/openSource/pvt2/pvtList HTTP/1.1
GET /dolphin/openSource/pvt2/pvtList HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:w3415038
Host: 172.16.108.251:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Content-Type: application/json
Content-Length: 2389
Date: Wed, 06 Jun 2018 04:01:51 GMT

{
  "list": [
    {
      "memo": null,
      "facilityId": "1.3.6.1.4.1.9414.70.1",
      "patientModel": {
        "romanName": null,
        "nationality": null,
        "nationalityDesc": null,
        "maritalStatus": null,
        "jpegPhoto": null,
        "mobilePhone": null,
        "relations": null,
        "reserve1": null,
        "reserve2": null,
        "reserve3": null,
        "reserve4": null,
        "reserve5": null,
        "reserve6": null,
        "memo": null,
        "email": null,
        "facilityId": "1.3.6.1.4.1.9414.70.1",
        "telephone": null,
        "patientId": "00004",
        "healthInsurances": [
          {
            "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfMTYxIiBjbGFzcz0iamF2YS5iZWFucy5YTUxEZWNvZGVyIj4KIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuUFZUSGVhbHRoSW5zdXJhbmNlTW9kZWwiPgogIDx2b2lkIHByb3BlcnR5PSJHVUlEIj4KICAgPHN0cmluZz41Yjk0NWIyZi01Mzg4LTQ0ODMtYjlhYS0wOTdkMDJhZDk1MmE8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsaWVudEdyb3VwIj4KICAgPHN0cmluZz7vvJLvvJDvvJDvvJA8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsaWVudE51bWJlciI+CiAgIDxzdHJpbmc+77yW77yY77yV77yTPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJleHBpcmVkRGF0ZSI+CiAgIDxzdHJpbmc+OTk5OS0xMi0zMTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iZmFtaWx5Q2xhc3MiPgogICA8c3RyaW5nPmZhbHNlPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzcyI+CiAgIDxzdHJpbmc+57WE5ZCIPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzc0NvZGUiPgogICA8c3RyaW5nPjA2PC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzc0NvZGVTeXMiPgogICA8c3RyaW5nPk1NTDAwMzE8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9Imluc3VyYW5jZU51bWJlciI+CiAgIDxzdHJpbmc+MDYzMzAwNzA8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9InBheU91dFJhdGlvIj4KICAgPHN0cmluZz4wLjMwPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJzdGFydERhdGUiPgogICA8c3RyaW5nPjIwMTctMTAtMzA8L3N0cmluZz4KICA8L3ZvaWQ+CiA8L29iamVjdD4KPC9qYXZhPgo=",
            "id": 32
          }
        ],
        "kanaName": "サヤマ セイジ",
        "gender": "male",
        "genderDesc": "M",
        "birthday": "1948-06-15",
        "simpleAddressModel": null,
        "appMemo": "診察1",
        "pvtDate": null,
        "ownerUUID": "w3415038:eacac34c-c8e7-4bd8-9e71-35f3c3653ddc",
        "fullName": "佐山 清二",
        "id": 31
      },
      "deptName": "内科",
      "deptCode": "01",
      "doctorName": "〇〇 〇〇",
      "doctorId": "10002",
      "jmariNumber": "JPN000000000000",
      "pvtDate": "2018-05-17T15:22:21",
      "department": "内科,01,〇〇 〇〇,10002,JPN000000000000,",
      "firstInsurance": "06 組合",
      "insuranceUid": "5b945b2f-5388-4483-b9aa-097d02ad952a",
      "lastDocDate": null,
      "appointment": null,
      "id": 34,
      "state": 1
    }
  ]
}


#3と#4のキャプチャに関しては、"beanBytes"の部分をBase64でコードツールでデコードをした。整形したのは下記の点である。

#5 <?xml version="1.0" encoding="UTF-8"?> (#3のキャプチャより)
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_161" class="java.beans.XMLDecoder">
  <object class="open.dolphin.infomodel.ProgressCourse">
    <void property="freeText">
      <string>
        <section start="0" end="14">
          <paragraph start="0" end="14">
            <content start="0" end="13" name="content">
              <text>嘔吐・下痢の症状がみられる</text>
            </content>
            <content start="13" end="14">
              <text></text>
            </content>
          </paragraph>
        </section>
      </string>
    </void>
  </object>
</java>

#6 <?xml version="1.0" encoding="UTF-8"?> (#3のキャプチャより)
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_161" class="java.beans.XMLDecoder">
  <object class="open.dolphin.infomodel.BundleDolphin">
    <void property="bundleNumber">
      <string>1</string>
    </void>
    <void property="claimItem">
      <array class="open.dolphin.infomodel.ClaimItem" length="1">
        <void index="0">
          <object class="open.dolphin.infomodel.ClaimItem">
            <void property="classCode">
              <string>0</string>
            </void>
            <void property="classCodeSystem">
              <string>Claim003</string>
            </void>
            <void property="code">
              <string>112007410</string>
            </void>
            <void property="name">
              <string>再診</string>
            </void>
          </object>
        </void>
      </array>
    </void>
    <void property="classCode">
      <string>120</string>
    </void>
    <void property="classCodeSystem">
      <string>Claim007</string>
    </void>
    <void property="className">
      <string>再診(再診)</string>
    </void>
    <void property="orderName">
      <string>診断料</string>
    </void>
  </object>
</java>
#7 <?xml version="1.0" encoding="UTF-8"?> (#3のキャプチャより)
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_161" class="java.beans.XMLDecoder">
  <object class="open.dolphin.infomodel.BundleMed">
    <void property="admin">
      <string>[用法] 1日3回毎食後に</string>
    </void>
    <void property="adminCode">
      <string>001000301</string>
    </void>
    <void property="bundleNumber">
      <string>7</string>
    </void>
    <void property="claimItem">
      <array class="open.dolphin.infomodel.ClaimItem" length="1">
        <void index="0">
          <object class="open.dolphin.infomodel.ClaimItem">
            <void property="classCode">
              <string>2</string>
            </void>
            <void property="classCodeSystem">
              <string>Claim003</string>
            </void>
            <void property="code">
              <string>610421320</string>
            </void>
            <void property="name">
              <string>アダラートCR錠10mg</string>
            </void>
            <void property="number">
              <string>3</string>
            </void>
            <void property="numberCode">
              <string>10</string>
            </void>
            <void property="numberCodeSystem">
              <string>Claim004</string>
            </void>
            <void property="unit">
              <string>錠</string>
            </void>
            <void property="ykzKbn">
              <string>1</string>
            </void>
          </object>
        </void>
      </array>
    </void>
    <void property="classCode">
      <string>211</string>
    </void>
    <void property="classCodeSystem">
      <string>Claim007</string>
    </void>
    <void property="className">
      <string>投薬(内服・頓服・調剤)(院内)</string>
    </void>
    <void property="memo">
      <string>内用(院内処方)</string>
    </void>
  </object>
</java>


#8 <?xml version="1.0" encoding="UTF-8"?> (#4のキャプチャより)
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_161" class="java.beans.XMLDecoder">
  <object class="open.dolphin.infomodel.ProgressCourse">
    <void property="freeText">
      <string>
        <section start="0" end="5">
          <paragraph start="0" end="2">
            <component start="0" end="1" name="stampHolder" component="0"></component>
            <content start="1" end="2">
              <text></text>
            </content>
          </paragraph>
          <paragraph start="2" end="3">
            <content start="2" end="3">
              <text></text>
            </content>
          </paragraph>
          <paragraph start="3" end="5">
            <component start="3" end="4" name="stampHolder" component="1"></component>
            <content start="4" end="5">
              <text></text>
            </content>
          </paragraph>
        </section>
      </string>
    </void>
  </object>
</java>


結論として、、、
#1カルテ画面の患者情報をやり取りしていることが分かる
#2HTTP PUTを用いてステート等の更新を促しているのだろうか?
#3HTTP GETからカルテの情報を読み込んでいる。
#4患者のIDや名前等の情報が読み取れた。
#5フリーテキストの開始では無いかと考える
#6再診や診察料の記載をしているのではないだろうか?
#7薬剤や用法について記載している
#8では、#5と同様にテキストの開始を表しているのではないだろうか?


3.患者検索

今回は前回と同様の手順を用いてOpenDolphinのパケットキャプチャを行い、実際にどのようなデータが流れているのかを確認した。尚、今回確認したパケットはキーワード「0000」で患者検索をし、検査結果が表示された際に送受信されるパケットである(図1,2)
図1.キーワード「0000」で検索する際の画面
図2.検査結果画面
図3.Wiresharkで患者検索時に流れていたパケットをキャプチャ
取得したパケットは上記の図3の様なものである。ここからprtocolが「HTTP」、Infoが「GET~」から始まるパケットを探すと全部で2つあった。各々に対して、[追跡]>[HTTPストリーム]でパケットの再構築を行った。するとポップアップが表示されるので、show and save data asの項目を「UTF-8形式」に変更し、save as...よりパケットの保存を行う。尚、この際拡張子は「.txt」とする。


その、2つのパケットの結果が以下の2つである(以下はJSON Pretty Printを用い、すでにデータを整形し置き換えている)。



#1 GET /dolphin/openSource/patient/digit/0000 HTTP/1.1

GET /dolphin/openSource/patient/digit/0000 HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:w3415016
Host: 172.16.108.251:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Content-Type: application/json
Content-Length: 7787
Date: Wed, 06 Jun 2018 03:54:57 GMT

{
  "list": [
    {
      "romanName": null,
      "nationality": null,
      "nationalityDesc": null,
      "maritalStatus": null,
      "jpegPhoto": null,
      "mobilePhone": null,
      "relations": null,
      "reserve1": null,
      "reserve2": null,
      "reserve3": null,
      "reserve4": null,
      "reserve5": null,
      "reserve6": null,
      "memo": null,
      "email": null,
      "facilityId": "1.3.6.1.4.1.9414.70.1",
      "telephone": null,
      "patientId": "00004",
      "healthInsurances": [
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfMTYxIiBjbGFzcz0iamF2YS5iZWFucy5YTUxEZWNvZGVyIj4KIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuUFZUSGVhbHRoSW5zdXJhbmNlTW9kZWwiPgogIDx2b2lkIHByb3BlcnR5PSJHVUlEIj4KICAgPHN0cmluZz41Yjk0NWIyZi01Mzg4LTQ0ODMtYjlhYS0wOTdkMDJhZDk1MmE8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsaWVudEdyb3VwIj4KICAgPHN0cmluZz7vvJLvvJDvvJDvvJA8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsaWVudE51bWJlciI+CiAgIDxzdHJpbmc+77yW77yY77yV77yTPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJleHBpcmVkRGF0ZSI+CiAgIDxzdHJpbmc+OTk5OS0xMi0zMTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iZmFtaWx5Q2xhc3MiPgogICA8c3RyaW5nPmZhbHNlPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzcyI+CiAgIDxzdHJpbmc+57WE5ZCIPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzc0NvZGUiPgogICA8c3RyaW5nPjA2PC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzc0NvZGVTeXMiPgogICA8c3RyaW5nPk1NTDAwMzE8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9Imluc3VyYW5jZU51bWJlciI+CiAgIDxzdHJpbmc+MDYzMzAwNzA8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9InBheU91dFJhdGlvIj4KICAgPHN0cmluZz4wLjMwPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJzdGFydERhdGUiPgogICA8c3RyaW5nPjIwMTctMTAtMzA8L3N0cmluZz4KICA8L3ZvaWQ+CiA8L29iamVjdD4KPC9qYXZhPgo=",
          "id": 32
        }
      ],
      "kanaName": "サヤマ セイジ",
      "gender": "male",
      "genderDesc": "M",
      "birthday": "1948-06-15",
      "simpleAddressModel": null,
      "appMemo": "診察1",
      "pvtDate": "2018-05-17T15:22:21",
      "ownerUUID": null,
      "fullName": "佐山 清二",
      "id": 31
    },
    {
      "romanName": null,
      "nationality": null,
      "nationalityDesc": null,
      "maritalStatus": null,
      "jpegPhoto": null,
      "mobilePhone": null,
      "relations": null,
      "reserve1": null,
      "reserve2": null,
      "reserve3": null,
      "reserve4": null,
      "reserve5": null,
      "reserve6": null,
      "memo": null,
      "email": null,
      "facilityId": "1.3.6.1.4.1.9414.70.1",
      "telephone": null,
      "patientId": "00001",
      "healthInsurances": [
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfMTcxIiBjbGFzcz0iamF2YS5iZWFucy5YTUxEZWNvZGVyIj4KIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuUFZUSGVhbHRoSW5zdXJhbmNlTW9kZWwiPgogIDx2b2lkIHByb3BlcnR5PSJHVUlEIj4KICAgPHN0cmluZz45MjYyOTRlZi03YTZmLTRlOTYtODEyNS03OThlMzQwYWNhNjM8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsaWVudEdyb3VwIj4KICAgPHN0cmluZz7vvJTvvJHvvJDvvJbvvJHvvJLvvJTvvJI8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsaWVudE51bWJlciI+CiAgIDxzdHJpbmc+77yZ77yW77yT77yVPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJleHBpcmVkRGF0ZSI+CiAgIDxzdHJpbmc+OTk5OS0xMi0zMTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iZmFtaWx5Q2xhc3MiPgogICA8c3RyaW5nPnRydWU8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9Imluc3VyYW5jZUNsYXNzIj4KICAgPHN0cmluZz7ljZTkvJrjgZHjgpPjgb08L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9Imluc3VyYW5jZUNsYXNzQ29kZSI+CiAgIDxzdHJpbmc+MDk8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9Imluc3VyYW5jZUNsYXNzQ29kZVN5cyI+CiAgIDxzdHJpbmc+TU1MMDAzMTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iaW5zdXJhbmNlTnVtYmVyIj4KICAgPHN0cmluZz4wMTQwMDAxOTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0icGF5T3V0UmF0aW8iPgogICA8c3RyaW5nPjAuMzA8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9InN0YXJ0RGF0ZSI+CiAgIDxzdHJpbmc+MjAxNy0xMC0yNTwvc3RyaW5nPgogIDwvdm9pZD4KIDwvb2JqZWN0Pgo8L2phdmE+Cg==",
          "id": 1867
        }
      ],
      "kanaName": "ヤマシタ コウスケ",
      "gender": "male",
      "genderDesc": "M",
      "birthday": "1970-12-06",
      "simpleAddressModel": null,
      "appMemo": "診察1",
      "pvtDate": "2018-05-23T13:56:45",
      "ownerUUID": null,
      "fullName": "山下 浩介",
      "id": 35
    },
    {
      "romanName": null,
      "nationality": null,
      "nationalityDesc": null,
      "maritalStatus": null,
      "jpegPhoto": null,
      "mobilePhone": null,
      "relations": null,
      "reserve1": null,
      "reserve2": null,
      "reserve3": null,
      "reserve4": null,
      "reserve5": null,
      "reserve6": null,
      "memo": null,
      "email": null,
      "facilityId": "1.3.6.1.4.1.9414.70.1",
      "telephone": null,
      "patientId": "00002",
      "healthInsurances": [
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfNDUiIGNsYXNzPSJqYXZhLmJlYW5zLlhNTERlY29kZXIiPgogPG9iamVjdCBjbGFzcz0ib3Blbi5kb2xwaGluLmluZm9tb2RlbC5QVlRIZWFsdGhJbnN1cmFuY2VNb2RlbCI+CiAgPHZvaWQgcHJvcGVydHk9IkdVSUQiPgogICA8c3RyaW5nPjFhYWM3MjMyLWEwZWEtNDM2Ny1hODMwLTE0OTE5NjMzYTYzZjwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iY2xpZW50R3JvdXAiPgogICA8c3RyaW5nPumDvTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iY2xpZW50TnVtYmVyIj4KICAgPHN0cmluZz7vvJfvvJfvvJTvvJLvvJE8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImV4cGlyZWREYXRlIj4KICAgPHN0cmluZz45OTk5LTEyLTMxPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJmYW1pbHlDbGFzcyI+CiAgIDxzdHJpbmc+dHJ1ZTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iaW5zdXJhbmNlQ2xhc3MiPgogICA8c3RyaW5nPuWcsOaWueWFsea4iDwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iaW5zdXJhbmNlQ2xhc3NDb2RlIj4KICAgPHN0cmluZz4zMjwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iaW5zdXJhbmNlQ2xhc3NDb2RlU3lzIj4KICAgPHN0cmluZz5NTUwwMDMxPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VOdW1iZXIiPgogICA8c3RyaW5nPjMyMTMwMjEzPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJwYXlPdXRSYXRpbyI+CiAgIDxzdHJpbmc+MC4zMDwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0ic3RhcnREYXRlIj4KICAgPHN0cmluZz4yMDE3LTEwLTI1PC9zdHJpbmc+CiAgPC92b2lkPgogPC9vYmplY3Q+CjwvamF2YT4K",
          "id": 40
        }
      ],
      "kanaName": "フクダ ヨシヒロ",
      "gender": "male",
      "genderDesc": "M",
      "birthday": "1961-08-27",
      "simpleAddressModel": null,
      "appMemo": "診察1",
      "pvtDate": "2018-05-17T15:22:52",
      "ownerUUID": null,
      "fullName": "福田 佳宏",
      "id": 39
    },
    {
      "romanName": null,
      "nationality": null,
      "nationalityDesc": null,
      "maritalStatus": null,
      "jpegPhoto": null,
      "mobilePhone": null,
      "relations": null,
      "reserve1": null,
      "reserve2": null,
      "reserve3": null,
      "reserve4": null,
      "reserve5": null,
      "reserve6": null,
      "memo": null,
      "email": null,
      "facilityId": "1.3.6.1.4.1.9414.70.1",
      "telephone": null,
      "patientId": "00003",
      "healthInsurances": [
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfMTcxIiBjbGFzcz0iamF2YS5iZWFucy5YTUxEZWNvZGVyIj4KIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuUFZUSGVhbHRoSW5zdXJhbmNlTW9kZWwiPgogIDx2b2lkIHByb3BlcnR5PSJHVUlEIj4KICAgPHN0cmluZz40MDIyNjE1ZC1kNWE0LTRiY2ItYWJiMC1hZTY2MTEzY2FjMTg8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsaWVudEdyb3VwIj4KICAgPHN0cmluZz7vvJHvvJDvvJg8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsaWVudE51bWJlciI+CiAgIDxzdHJpbmc+77yU77yT77yS77yV77yS77yRPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJleHBpcmVkRGF0ZSI+CiAgIDxzdHJpbmc+OTk5OS0xMi0zMTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iZmFtaWx5Q2xhc3MiPgogICA8c3RyaW5nPmZhbHNlPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzcyI+CiAgIDxzdHJpbmc+57WE5ZCIPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzc0NvZGUiPgogICA8c3RyaW5nPjA2PC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzc0NvZGVTeXMiPgogICA8c3RyaW5nPk1NTDAwMzE8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9Imluc3VyYW5jZU51bWJlciI+CiAgIDxzdHJpbmc+MDYwNDAxMzM8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9InBheU91dFJhdGlvIj4KICAgPHN0cmluZz4wLjMwPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJzdGFydERhdGUiPgogICA8c3RyaW5nPjIwMTctMTAtMzA8L3N0cmluZz4KICA8L3ZvaWQ+CiA8L29iamVjdD4KPC9qYXZhPgo=",
          "id": 28
        }
      ],
      "kanaName": "サカイ ハルヨ",
      "gender": "female",
      "genderDesc": "F",
      "birthday": "1976-06-04",
      "simpleAddressModel": null,
      "appMemo": "診察1",
      "pvtDate": "2018-05-17T15:22:20",
      "ownerUUID": null,
      "fullName": "酒井 春代",
      "id": 27
    }
  ]
}








#2 GET /dolphin/openSource/pvt2/pvtList HTTP/1.1


GET /dolphin/openSource/pvt2/pvtList HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:w3415016
Host: 172.16.108.251:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Content-Type: application/json
Content-Length: 2346
Date: Wed, 06 Jun 2018 03:55:08 GMT

{
  "list": [
    {
      "memo": null,
      "facilityId": "1.3.6.1.4.1.9414.70.1",
      "patientModel": {
        "romanName": null,
        "nationality": null,
        "nationalityDesc": null,
        "maritalStatus": null,
        "jpegPhoto": null,
        "mobilePhone": null,
        "relations": null,
        "reserve1": null,
        "reserve2": null,
        "reserve3": null,
        "reserve4": null,
        "reserve5": null,
        "reserve6": null,
        "memo": null,
        "email": null,
        "facilityId": "1.3.6.1.4.1.9414.70.1",
        "telephone": null,
        "patientId": "00004",
        "healthInsurances": [
          {
            "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfMTYxIiBjbGFzcz0iamF2YS5iZWFucy5YTUxEZWNvZGVyIj4KIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuUFZUSGVhbHRoSW5zdXJhbmNlTW9kZWwiPgogIDx2b2lkIHByb3BlcnR5PSJHVUlEIj4KICAgPHN0cmluZz41Yjk0NWIyZi01Mzg4LTQ0ODMtYjlhYS0wOTdkMDJhZDk1MmE8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsaWVudEdyb3VwIj4KICAgPHN0cmluZz7vvJLvvJDvvJDvvJA8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsaWVudE51bWJlciI+CiAgIDxzdHJpbmc+77yW77yY77yV77yTPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJleHBpcmVkRGF0ZSI+CiAgIDxzdHJpbmc+OTk5OS0xMi0zMTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iZmFtaWx5Q2xhc3MiPgogICA8c3RyaW5nPmZhbHNlPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzcyI+CiAgIDxzdHJpbmc+57WE5ZCIPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzc0NvZGUiPgogICA8c3RyaW5nPjA2PC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJpbnN1cmFuY2VDbGFzc0NvZGVTeXMiPgogICA8c3RyaW5nPk1NTDAwMzE8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9Imluc3VyYW5jZU51bWJlciI+CiAgIDxzdHJpbmc+MDYzMzAwNzA8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9InBheU91dFJhdGlvIj4KICAgPHN0cmluZz4wLjMwPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJzdGFydERhdGUiPgogICA8c3RyaW5nPjIwMTctMTAtMzA8L3N0cmluZz4KICA8L3ZvaWQ+CiA8L29iamVjdD4KPC9qYXZhPgo=",
            "id": 32
          }
        ],
        "kanaName": "サヤマ セイジ",
        "gender": "male",
        "genderDesc": "M",
        "birthday": "1948-06-15",
        "simpleAddressModel": null,
        "appMemo": "診察1",
        "pvtDate": null,
        "ownerUUID": null,
        "fullName": "佐山 清二",
        "id": 31
      },
      "deptName": "内科",
      "deptCode": "01",
      "doctorName": "〇〇 ○○",
      "doctorId": "10002",
      "jmariNumber": "JPN000000000000",
      "pvtDate": "2018-05-17T15:22:21",
      "department": "内科,01,○○ ○○,10002,JPN000000000000,",
      "firstInsurance": "06 組合",
      "insuranceUid": "5b945b2f-5388-4483-b9aa-097d02ad952a",
      "lastDocDate": null,
      "appointment": null,
      "id": 34,
      "state": 0
    }
  ]
}

#1は患者の情報を1人ずつ項目ごとにデータを要求していることが分かった。
#2は前回のブログにあったよう、保険情報のデータのやり取りを行っていることが分かった。

4.検索結果

ここでは、OpenDolpihn上で検索結果→患者選択→カルテを開いたときのパケットキャプチャを解析する。まず、Opebdolphinを下記の図1の様に操作する。
図1 検索結果画面
そしてOpendolphinはこの状態で待機をして置き、wiresharkを起動。キャプチャフィルタリング「host 172.16.108.251」を設定した後キャプチャを開始する。
その後、図2の様にカルテを開く。
図2 カルテ画面
カルテ画面を開くと同時にwiresharkでのパケットキャプチャが行われるので、Opendolphinはこのままにして置き、wiresharkでパケットキャプチャを終了し、確認を行ったところ、以下の図3のようなパケットキャプチャが表示された。
図3 wiresharkパケットキャプチャ図
あとは前回同様HTTP~GET(またはPUT)から始まるキャプチャを追跡→HTTPストリームによるパケットの再構築を行う。あとは文字コードをUTF-8に変更し、save as...にて.txtファイルとして保存 json部分はJSON Pretty Printより整形をする。
今回は以下の3つのキャプチャが表示された。
#1GET /dolphin/openSource/karte/39,2008-06-06%2012:00:00 HTTP/1.1
GET /dolphin/openSource/karte/39,2008-06-06%2012:00:00 HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:W3415020
Host: 172.16.108.251:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Content-Type: application/json
Content-Length: 2120
Date: Wed, 06 Jun 2018 03:57:04 GMT

{
  "lastDocDate": 1526540645111,
  "created": "2018-05-17",
  "allergies": null,
  "heights": null,
  "weights": null,
  "patientVisits": [
    "2018-05-17T15:22:52"
  ],
  "docInfoList": [
    {
      "departmentCodeSys": null,
      "docPk": 89,
      "purposeDesc": null,
      "purposeCodeSys": null,
      "healthInsuranceCodeSys": null,
      "versionNotes": null,
      "parentId": null,
      "parentIdDesc": null,
      "parentIdCodeSys": null,
      "labtestOrderNumber": null,
      "pvthealthInsuranceModel": null,
      "createrLisence": null,
      "title": "経過記録",
      "departmentDesc": "内科,01,河上 眞,10005,JPN000000000000",
      "firstConfirmDate": 1526540645111,
      "confirmDate": 1526540645111,
      "facilityName": null,
      "patientName": null,
      "patientId": null,
      "department": "01",
      "parentPk": 0,
      "docId": "6ce8e9a0ac10666500a3afebd697d1aa",
      "sendClaim": false,
      "parentIdRelation": null,
      "docType": "karte",
      "healthInsurance": "32",
      "healthInsuranceDesc": "32 地方共済",
      "healthInsuranceGUID": "1aac7232-a0ea-4367-a830-14919633a63f",
      "claimDate": 1526540638372,
      "purpose": "recode",
      "patientGender": null,
      "versionNumber": "1.0",
      "hasTreatment": false,
      "hasLaboTest": false,
      "sendLabtest": false,
      "sendMml": false,
      "hasRp": true,
      "hasImage": false,
      "hasMark": false,
      "status": "F"
    },
    {
      "departmentCodeSys": null,
      "docPk": 65,
      "purposeDesc": null,
      "purposeCodeSys": null,
      "healthInsuranceCodeSys": null,
      "versionNotes": null,
      "parentId": "6cc74c63ac106665007ca5a7cd3e428f",
      "parentIdDesc": null,
      "parentIdCodeSys": null,
      "labtestOrderNumber": null,
      "pvthealthInsuranceModel": null,
      "createrLisence": null,
      "title": "経過記録",
      "departmentDesc": "内科,01,河上 眞,10005,JPN000000000000",
      "firstConfirmDate": 1526538725033,
      "confirmDate": 1526539445096,
      "facilityName": null,
      "patientName": null,
      "patientId": null,
      "department": "01",
      "parentPk": 43,
      "docId": "6cd70f3dac10666500f6060c61c9ed6c",
      "sendClaim": false,
      "parentIdRelation": "oldEdition",
      "docType": "karte",
      "healthInsurance": "32",
      "healthInsuranceDesc": "32 地方共済",
      "healthInsuranceGUID": "1aac7232-a0ea-4367-a830-14919633a63f",
      "claimDate": 1526538722671,
      "purpose": "recode",
      "patientGender": null,
      "versionNumber": "2.0",
      "hasTreatment": false,
      "hasLaboTest": false,
      "sendLabtest": false,
      "sendMml": false,
      "hasRp": true,
      "hasImage": false,
      "hasMark": false,
      "status": "F"
    }
  ],
  "memoList": null,
  "id": 41
}
#2PUT /dolphin/openSource/chartEvent/event HTTP/1.1
PUT /dolphin/openSource/chartEvent/event HTTP/1.1
Accept-Encoding: gzip, deflate
Content-Type: application/json
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:W3415020
Content-Length: 297
Host: 172.16.108.251:8080
Connection: Keep-Alive

{
  "state": 1,
  "byomeiCount": 0,
  "facilityId": "1.3.6.1.4.1.9414.70.1",
  "ownerUUID": "W3415020:944bb480-851b-457e-aac3-f4a9ccf2e780",
  "patientModel": null,
  "byomeiCountToday": 0,
  "memo": null,
  "eventType": 0,
  "issuerUUID": "W3415020:944bb480-851b-457e-aac3-f4a9ccf2e780",
  "patientVisitModel": null,
  "pvtPk": 0,
  "ptPk": 39
}
HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Content-Type: application/json
Content-Length: 1
Date: Wed, 06 Jun 2018 03:57:04 GMT

1
#3GET /dolphin/openSource/karte/documents/89 HTTP/1.1
GET /dolphin/openSource/karte/documents/89 HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:W3415020
Host: 172.16.108.251:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Content-Type: application/json
Content-Length: 10039
Date: Wed, 06 Jun 2018 03:57:04 GMT

{
  "list": [
    {
      "linkId": 0,
      "linkRelation": null,
      "recorded": 1526540645111,
      "userModel": {
        "userId": null,
        "facilityModel": null,
        "sirName": null,
        "givenName": null,
        "commonName": "河上 眞",
        "departmentModel": null,
        "memo": null,
        "email": null,
        "orcaId": null,
        "useDrugId": null,
        "memberType": null,
        "registeredDate": null,
        "licenseModel": null,
        "roles": null,
        "password": null,
        "id": 24
      },
      "karteBean": {
        "lastDocDate": null,
        "created": null,
        "allergies": null,
        "heights": null,
        "weights": null,
        "patientVisits": null,
        "docInfoList": null,
        "memoList": null,
        "id": 41
      },
      "started": 1526540645111,
      "ended": null,
      "docInfoModel": {
        "departmentCodeSys": null,
        "docPk": 89,
        "purposeDesc": null,
        "purposeCodeSys": null,
        "healthInsuranceCodeSys": null,
        "versionNotes": null,
        "parentId": null,
        "parentIdDesc": null,
        "parentIdCodeSys": null,
        "labtestOrderNumber": null,
        "pvthealthInsuranceModel": null,
        "createrLisence": null,
        "title": "経過記録",
        "departmentDesc": "内科,01,河上 眞,10005,JPN000000000000",
        "firstConfirmDate": 1526540645111,
        "confirmDate": 1526540645111,
        "facilityName": null,
        "patientName": null,
        "patientId": null,
        "department": "01",
        "parentPk": 0,
        "docId": "6ce8e9a0ac10666500a3afebd697d1aa",
        "sendClaim": false,
        "parentIdRelation": null,
        "docType": "karte",
        "healthInsurance": "32",
        "healthInsuranceDesc": "32 地方共済",
        "healthInsuranceGUID": "1aac7232-a0ea-4367-a830-14919633a63f",
        "claimDate": 1526540638372,
        "purpose": "recode",
        "patientGender": null,
        "versionNumber": "1.0",
        "hasTreatment": false,
        "hasLaboTest": false,
        "sendLabtest": false,
        "sendMml": false,
        "hasRp": true,
        "hasImage": false,
        "hasMark": false,
        "status": "F"
      },
      "confirmed": 1526540645111,
      "modules": [
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfNDUiIGNsYXNzPSJqYXZhLmJlYW5zLlhNTERlY29kZXIiPgogPG9iamVjdCBjbGFzcz0ib3Blbi5kb2xwaGluLmluZm9tb2RlbC5Qcm9ncmVzc0NvdXJzZSI+CiAgPHZvaWQgcHJvcGVydHk9ImZyZWVUZXh0Ij4KICAgPHN0cmluZz4mbHQ7c2VjdGlvbiBzdGFydD0mcXVvdDswJnF1b3Q7IGVuZD0mcXVvdDsxJnF1b3Q7Jmd0OyZsdDtwYXJhZ3JhcGggc3RhcnQ9JnF1b3Q7MCZxdW90OyBlbmQ9JnF1b3Q7MSZxdW90OyZndDsmbHQ7Y29udGVudCBzdGFydD0mcXVvdDswJnF1b3Q7IGVuZD0mcXVvdDsxJnF1b3Q7Jmd0OyZsdDt0ZXh0Jmd0OwombHQ7L3RleHQmZ3Q7Jmx0Oy9jb250ZW50Jmd0OyZsdDsvcGFyYWdyYXBoJmd0OyZsdDsvc2VjdGlvbiZndDs8L3N0cmluZz4KICA8L3ZvaWQ+CiA8L29iamVjdD4KPC9qYXZhPgo=",
          "linkId": 0,
          "linkRelation": null,
          "recorded": 1526540645111,
          "userModel": {
            "userId": null,
            "facilityModel": null,
            "sirName": null,
            "givenName": null,
            "commonName": null,
            "departmentModel": null,
            "memo": null,
            "email": null,
            "orcaId": null,
            "useDrugId": null,
            "memberType": null,
            "registeredDate": null,
            "licenseModel": null,
            "roles": null,
            "password": null,
            "id": 24
          },
          "karteBean": {
            "lastDocDate": null,
            "created": null,
            "allergies": null,
            "heights": null,
            "weights": null,
            "patientVisits": null,
            "docInfoList": null,
            "memoList": null,
            "id": 41
          },
          "started": 1526540645111,
          "ended": null,
          "moduleInfoBean": {
            "stampNumber": 0,
            "stampName": "progressCourse",
            "stampRole": "soaSpec",
            "entity": "progressCourse"
          },
          "confirmed": 1526540645111,
          "status": "F",
          "id": 90
        },
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfNDUiIGNsYXNzPSJqYXZhLmJlYW5zLlhNTERlY29kZXIiPgogPG9iamVjdCBjbGFzcz0ib3Blbi5kb2xwaGluLmluZm9tb2RlbC5CdW5kbGVEb2xwaGluIj4KICA8dm9pZCBwcm9wZXJ0eT0iYnVuZGxlTnVtYmVyIj4KICAgPHN0cmluZz4xPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJjbGFpbUl0ZW0iPgogICA8YXJyYXkgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuQ2xhaW1JdGVtIiBsZW5ndGg9IjEiPgogICAgPHZvaWQgaW5kZXg9IjAiPgogICAgIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuQ2xhaW1JdGVtIj4KICAgICAgPHZvaWQgcHJvcGVydHk9ImNsYXNzQ29kZSI+CiAgICAgICA8c3RyaW5nPjA8L3N0cmluZz4KICAgICAgPC92b2lkPgogICAgICA8dm9pZCBwcm9wZXJ0eT0iY2xhc3NDb2RlU3lzdGVtIj4KICAgICAgIDxzdHJpbmc+Q2xhaW0wMDM8L3N0cmluZz4KICAgICAgPC92b2lkPgogICAgICA8dm9pZCBwcm9wZXJ0eT0iY29kZSI+CiAgICAgICA8c3RyaW5nPjExMjAwNzQxMDwvc3RyaW5nPgogICAgICA8L3ZvaWQ+CiAgICAgIDx2b2lkIHByb3BlcnR5PSJuYW1lIj4KICAgICAgIDxzdHJpbmc+5YaN6Ki6PC9zdHJpbmc+CiAgICAgIDwvdm9pZD4KICAgICA8L29iamVjdD4KICAgIDwvdm9pZD4KICAgPC9hcnJheT4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsYXNzQ29kZSI+CiAgIDxzdHJpbmc+MTIwPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJjbGFzc0NvZGVTeXN0ZW0iPgogICA8c3RyaW5nPkNsYWltMDA3PC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJjbGFzc05hbWUiPgogICA8c3RyaW5nPuWGjeiouijlho3oqLopPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJvcmRlck5hbWUiPgogICA8c3RyaW5nPuiouuaWreaWmTwvc3RyaW5nPgogIDwvdm9pZD4KIDwvb2JqZWN0Pgo8L2phdmE+Cg==",
          "linkId": 0,
          "linkRelation": null,
          "recorded": 1526540645111,
          "userModel": {
            "userId": null,
            "facilityModel": null,
            "sirName": null,
            "givenName": null,
            "commonName": null,
            "departmentModel": null,
            "memo": null,
            "email": null,
            "orcaId": null,
            "useDrugId": null,
            "memberType": null,
            "registeredDate": null,
            "licenseModel": null,
            "roles": null,
            "password": null,
            "id": 24
          },
          "karteBean": {
            "lastDocDate": null,
            "created": null,
            "allergies": null,
            "heights": null,
            "weights": null,
            "patientVisits": null,
            "docInfoList": null,
            "memoList": null,
            "id": 41
          },
          "started": 1526540645111,
          "ended": null,
          "moduleInfoBean": {
            "stampNumber": 1,
            "stampName": "再診",
            "stampRole": "p",
            "entity": "baseChargeOrder"
          },
          "confirmed": 1526540645111,
          "status": "F",
          "id": 91
        },
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfNDUiIGNsYXNzPSJqYXZhLmJlYW5zLlhNTERlY29kZXIiPgogPG9iamVjdCBjbGFzcz0ib3Blbi5kb2xwaGluLmluZm9tb2RlbC5CdW5kbGVNZWQiPgogIDx2b2lkIHByb3BlcnR5PSJhZG1pbiI+CiAgIDxzdHJpbmc+W+eUqOazlV0g77yR5pel77yT5Zue5q+O6aOf5b6M44GrPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJhZG1pbkNvZGUiPgogICA8c3RyaW5nPjAwMTAwMDMwMTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iYnVuZGxlTnVtYmVyIj4KICAgPHN0cmluZz4zPC9zdHJpbmc+CiAgPC92b2lkPgogIDx2b2lkIHByb3BlcnR5PSJjbGFpbUl0ZW0iPgogICA8YXJyYXkgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuQ2xhaW1JdGVtIiBsZW5ndGg9IjEiPgogICAgPHZvaWQgaW5kZXg9IjAiPgogICAgIDxvYmplY3QgY2xhc3M9Im9wZW4uZG9scGhpbi5pbmZvbW9kZWwuQ2xhaW1JdGVtIj4KICAgICAgPHZvaWQgcHJvcGVydHk9ImNsYXNzQ29kZSI+CiAgICAgICA8c3RyaW5nPjI8L3N0cmluZz4KICAgICAgPC92b2lkPgogICAgICA8dm9pZCBwcm9wZXJ0eT0iY2xhc3NDb2RlU3lzdGVtIj4KICAgICAgIDxzdHJpbmc+Q2xhaW0wMDM8L3N0cmluZz4KICAgICAgPC92b2lkPgogICAgICA8dm9pZCBwcm9wZXJ0eT0iY29kZSI+CiAgICAgICA8c3RyaW5nPjYxMDQyMTMyMDwvc3RyaW5nPgogICAgICA8L3ZvaWQ+CiAgICAgIDx2b2lkIHByb3BlcnR5PSJuYW1lIj4KICAgICAgIDxzdHJpbmc+44Ki44OA44Op44O844OI77yj77yy6Yyg77yR77yQ772N772HPC9zdHJpbmc+CiAgICAgIDwvdm9pZD4KICAgICAgPHZvaWQgcHJvcGVydHk9Im51bWJlciI+CiAgICAgICA8c3RyaW5nPjM8L3N0cmluZz4KICAgICAgPC92b2lkPgogICAgICA8dm9pZCBwcm9wZXJ0eT0ibnVtYmVyQ29kZSI+CiAgICAgICA8c3RyaW5nPjEwPC9zdHJpbmc+CiAgICAgIDwvdm9pZD4KICAgICAgPHZvaWQgcHJvcGVydHk9Im51bWJlckNvZGVTeXN0ZW0iPgogICAgICAgPHN0cmluZz5DbGFpbTAwNDwvc3RyaW5nPgogICAgICA8L3ZvaWQ+CiAgICAgIDx2b2lkIHByb3BlcnR5PSJ1bml0Ij4KICAgICAgIDxzdHJpbmc+6YygPC9zdHJpbmc+CiAgICAgIDwvdm9pZD4KICAgICAgPHZvaWQgcHJvcGVydHk9InlrektibiI+CiAgICAgICA8c3RyaW5nPjE8L3N0cmluZz4KICAgICAgPC92b2lkPgogICAgIDwvb2JqZWN0PgogICAgPC92b2lkPgogICA8L2FycmF5PgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0iY2xhc3NDb2RlIj4KICAgPHN0cmluZz4yMTI8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsYXNzQ29kZVN5c3RlbSI+CiAgIDxzdHJpbmc+Q2xhaW0wMDc8L3N0cmluZz4KICA8L3ZvaWQ+CiAgPHZvaWQgcHJvcGVydHk9ImNsYXNzTmFtZSI+CiAgIDxzdHJpbmc+5oqV6JasKOWGheacjeODu+mgk+acjeODu+iqv+WJpCko6Zmi5aSWKTwvc3RyaW5nPgogIDwvdm9pZD4KICA8dm9pZCBwcm9wZXJ0eT0ibWVtbyI+CiAgIDxzdHJpbmc+5YaF55So77yI6Zmi5aSW5Yem5pa577yJPC9zdHJpbmc+CiAgPC92b2lkPgogPC9vYmplY3Q+CjwvamF2YT4K",
          "linkId": 0,
          "linkRelation": null,
          "recorded": 1526540645111,
          "userModel": {
            "userId": null,
            "facilityModel": null,
            "sirName": null,
            "givenName": null,
            "commonName": null,
            "departmentModel": null,
            "memo": null,
            "email": null,
            "orcaId": null,
            "useDrugId": null,
            "memberType": null,
            "registeredDate": null,
            "licenseModel": null,
            "roles": null,
            "password": null,
            "id": 24
          },
          "karteBean": {
            "lastDocDate": null,
            "created": null,
            "allergies": null,
            "heights": null,
            "weights": null,
            "patientVisits": null,
            "docInfoList": null,
            "memoList": null,
            "id": 41
          },
          "started": 1526540645111,
          "ended": null,
          "moduleInfoBean": {
            "stampNumber": 2,
            "stampName": "アダラートCR錠10mg",
            "stampRole": "p",
            "entity": "medOrder"
          },
          "confirmed": 1526540645111,
          "status": "F",
          "id": 92
        },
        {
          "beanBytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGphdmEgdmVyc2lvbj0iMS44LjBfNDUiIGNsYXNzPSJqYXZhLmJlYW5zLlhNTERlY29kZXIiPgogPG9iamVjdCBjbGFzcz0ib3Blbi5kb2xwaGluLmluZm9tb2RlbC5Qcm9ncmVzc0NvdXJzZSI+CiAgPHZvaWQgcHJvcGVydHk9ImZyZWVUZXh0Ij4KICAgPHN0cmluZz4mbHQ7c2VjdGlvbiBzdGFydD0mcXVvdDswJnF1b3Q7IGVuZD0mcXVvdDs1JnF1b3Q7Jmd0OyZsdDtwYXJhZ3JhcGggc3RhcnQ9JnF1b3Q7MCZxdW90OyBlbmQ9JnF1b3Q7MiZxdW90OyZndDsmbHQ7Y29tcG9uZW50IHN0YXJ0PSZxdW90OzAmcXVvdDsgZW5kPSZxdW90OzEmcXVvdDsgbmFtZT0mcXVvdDtzdGFtcEhvbGRlciZxdW90OyBjb21wb25lbnQ9JnF1b3Q7MCZxdW90OyZndDsmbHQ7L2NvbXBvbmVudCZndDsmbHQ7Y29udGVudCBzdGFydD0mcXVvdDsxJnF1b3Q7IGVuZD0mcXVvdDsyJnF1b3Q7Jmd0OyZsdDt0ZXh0Jmd0OwombHQ7L3RleHQmZ3Q7Jmx0Oy9jb250ZW50Jmd0OyZsdDsvcGFyYWdyYXBoJmd0OyZsdDtwYXJhZ3JhcGggc3RhcnQ9JnF1b3Q7MiZxdW90OyBlbmQ9JnF1b3Q7MyZxdW90OyZndDsmbHQ7Y29udGVudCBzdGFydD0mcXVvdDsyJnF1b3Q7IGVuZD0mcXVvdDszJnF1b3Q7Jmd0OyZsdDt0ZXh0Jmd0OwombHQ7L3RleHQmZ3Q7Jmx0Oy9jb250ZW50Jmd0OyZsdDsvcGFyYWdyYXBoJmd0OyZsdDtwYXJhZ3JhcGggc3RhcnQ9JnF1b3Q7MyZxdW90OyBlbmQ9JnF1b3Q7NSZxdW90OyZndDsmbHQ7Y29tcG9uZW50IHN0YXJ0PSZxdW90OzMmcXVvdDsgZW5kPSZxdW90OzQmcXVvdDsgbmFtZT0mcXVvdDtzdGFtcEhvbGRlciZxdW90OyBjb21wb25lbnQ9JnF1b3Q7MSZxdW90OyZndDsmbHQ7L2NvbXBvbmVudCZndDsmbHQ7Y29udGVudCBzdGFydD0mcXVvdDs0JnF1b3Q7IGVuZD0mcXVvdDs1JnF1b3Q7Jmd0OyZsdDt0ZXh0Jmd0OwombHQ7L3RleHQmZ3Q7Jmx0Oy9jb250ZW50Jmd0OyZsdDsvcGFyYWdyYXBoJmd0OyZsdDsvc2VjdGlvbiZndDs8L3N0cmluZz4KICA8L3ZvaWQ+CiA8L29iamVjdD4KPC9qYXZhPgo=",
          "linkId": 0,
          "linkRelation": null,
          "recorded": 1526540645111,
          "userModel": {
            "userId": null,
            "facilityModel": null,
            "sirName": null,
            "givenName": null,
            "commonName": null,
            "departmentModel": null,
            "memo": null,
            "email": null,
            "orcaId": null,
            "useDrugId": null,
            "memberType": null,
            "registeredDate": null,
            "licenseModel": null,
            "roles": null,
            "password": null,
            "id": 24
          },
          "karteBean": {
            "lastDocDate": null,
            "created": null,
            "allergies": null,
            "heights": null,
            "weights": null,
            "patientVisits": null,
            "docInfoList": null,
            "memoList": null,
            "id": 41
          },
          "started": 1526540645111,
          "ended": null,
          "moduleInfoBean": {
            "stampNumber": 3,
            "stampName": "progressCourse",
            "stampRole": "pSpec",
            "entity": "progressCourse"
          },
          "confirmed": 1526540645111,
          "status": "F",
          "id": 93
        }
      ],
      "attachment": null,
      "schema": null,
      "status": "F",
      "id": 89
    }
  ]
}

尚、3つ目のキャプチャに関してはBase64でコーディングされたものがあるので下記に各コーディングをデコードしたものを下記に示す。
#4<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_45" class="java.beans.XMLDecoder">
  <object class="open.dolphin.infomodel.ProgressCourse">
    <void property="freeText">
      <string>
        <section start="0" end="1">
          <paragraph start="0" end="1">
            <content start="0" end="1">
              <text></text>
            </content>
          </paragraph>
        </section>
      </string>
    </void>
  </object>
</java>
#5<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_45" class="java.beans.XMLDecoder">
  <object class="open.dolphin.infomodel.BundleDolphin">
    <void property="bundleNumber">
      <string>1</string>
    </void>
    <void property="claimItem">
      <array class="open.dolphin.infomodel.ClaimItem" length="1">
        <void index="0">
          <object class="open.dolphin.infomodel.ClaimItem">
            <void property="classCode">
              <string>0</string>
            </void>
            <void property="classCodeSystem">
              <string>Claim003</string>
            </void>
            <void property="code">
              <string>112007410</string>
            </void>
            <void property="name">
              <string>再診</string>
            </void>
          </object>
        </void>
      </array>
    </void>
    <void property="classCode">
      <string>120</string>
    </void>
    <void property="classCodeSystem">
      <string>Claim007</string>
    </void>
    <void property="className">
      <string>再診(再診)</string>
    </void>
    <void property="orderName">
      <string>診断料</string>
    </void>
  </object>
</java>
#6<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_45" class="java.beans.XMLDecoder">
  <object class="open.dolphin.infomodel.BundleMed">
    <void property="admin">
      <string>[用法] 1日3回毎食後に</string>
    </void>
    <void property="adminCode">
      <string>001000301</string>
    </void>
    <void property="bundleNumber">
      <string>3</string>
    </void>
    <void property="claimItem">
      <array class="open.dolphin.infomodel.ClaimItem" length="1">
        <void index="0">
          <object class="open.dolphin.infomodel.ClaimItem">
            <void property="classCode">
              <string>2</string>
            </void>
            <void property="classCodeSystem">
              <string>Claim003</string>
            </void>
            <void property="code">
              <string>610421320</string>
            </void>
            <void property="name">
              <string>アダラートCR錠10mg</string>
            </void>
            <void property="number">
              <string>3</string>
            </void>
            <void property="numberCode">
              <string>10</string>
            </void>
            <void property="numberCodeSystem">
              <string>Claim004</string>
            </void>
            <void property="unit">
              <string>錠</string>
            </void>
            <void property="ykzKbn">
              <string>1</string>
            </void>
          </object>
        </void>
      </array>
    </void>
    <void property="classCode">
      <string>212</string>
    </void>
    <void property="classCodeSystem">
      <string>Claim007</string>
    </void>
    <void property="className">
      <string>投薬(内服・頓服・調剤)(院外)</string>
    </void>
    <void property="memo">
      <string>内用(院外処方)</string>
    </void>
  </object>
</java>
#7<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_45" class="java.beans.XMLDecoder">
  <object class="open.dolphin.infomodel.ProgressCourse">
    <void property="freeText">
      <string>
        <section start="0" end="5">
          <paragraph start="0" end="2">
            <component start="0" end="1" name="stampHolder" component="0"></component>
            <content start="1" end="2">
              <text></text>
            </content>
          </paragraph>
          <paragraph start="2" end="3">
            <content start="2" end="3">
              <text></text>
            </content>
          </paragraph>
          <paragraph start="3" end="5">
            <component start="3" end="4" name="stampHolder" component="1"></component>
            <content start="4" end="5">
              <text></text>
            </content>
          </paragraph>
        </section>
      </string>
    </void>
  </object>
</java>
#1はHTTPGETにてアクセスデータ送信、保険データの受信を行っているのがわかる。
#2はHTTPPUTを用いてステート等の更新を促しているのだろうか?
#3はHTTPGETを用いておそらくカルテのインターフェース等の読み込みを行っているのだろうか?
#4はフリーテキストの開始位置を示しているのだろうか?
#5はオーダ名の記述などを行っているようにみえる。
#6は算定欄に記載されている薬剤名、用法が記述されているようにみえる。
#7はスタイル設定に関する書式だろうか?

5.検査結果

 今回は前回と同様の手順を用いてOpenDolphinのパケットキャプチャを行い、実際にどのようなデータが流れているのかを確認した。尚、今回確認したパケットは検査結果を際に送受信されるパケットである(図1,2)。
図1.OpenDolphinのカルテ画面

図2.カルテ画面後に表示させたラボテスト画面

図3.Wiresharkで遷移時に流れていたパケットをキャプチャ
 取得したパケットは上記の図3の様なものである。ここからprtocolが「HTTP」、Infoが「GET~」から始まるパケットを探すと全部で2つあった。各々に対して、[追跡]>[HTTPストリーム]でパケットの再構築を行った。するとポップアップが表示されるので、show and save data asの項目を「UTF-8形式」に変更し、save as...よりパケットの保存を行う。尚、この際拡張子は「.txt」とする。
その、2つのパケットの結果が以下の2つである(以下はJSON Pretty Printを用い、すでにデータを整形し置き換えている)。

#1 GET /dolphin/openSource/lab/module/count/00001 HTTP/1.1 
GET /dolphin/openSource/lab/module/count/00001 HTTP/1.1
Accept: text/plain
Accept-Encoding: gzip, deflate
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:w3415039
Host: 172.16.108.251:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Content-Type: text/plain
Content-Length: 2
Date: Wed, 06 Jun 2018 03:56:27 GMT

12

#2 GET /dolphin/openSource/lab/module/00001,0,6 HTTP/1.1
GET /dolphin/openSource/lab/module/00001,0,6 HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
password: 6f8e646f95af8e79096477e877245664
userName: 1.3.6.1.4.1.9414.70.1:w3415039
Host: 172.16.108.251:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Transfer-Encoding: chunked
Content-Type: application/json
Date: Wed, 06 Jun 2018 03:56:27 GMT

{
  "list": [
    {
      "progressState": null,
      "items": [
        {
          "laboCode": null,
          "lipemia": null,
          "hemolysis": null,
          "dialysis": null,
          "reportStatus": "E",
          "groupCode": "01",
          "groupName": "生化学的検査",
          "parentCode": "0001",
          "medisCode": "3J010000002327101",
          "itemName": "総ビリルビン",
          "abnormalFlg": null,
          "normalValue": "0.2-1.2",
          "specimenCode": "023",
          "specimenName": "血清",
          "commentCode1": null,
          "comment1": null,
          "commentCode2": null,
          "comment2": null,
          "sortKey": null,
          "itemCode": "0001",
          "sampleDate": "2018-05-06 00:00",
          "patientId": "1.3.6.1.4.1.9414.70.1:00001",
          "unit": "mg/dL",
          "value": "0.4",
          "id": 1120
        },
        {
          "laboCode": null,
          "lipemia": null,
          "hemolysis": null,
          "dialysis": null,
          "reportStatus": "E",
          "groupCode": "01",
          "groupName": "生化学的検査",
          "parentCode": "0002",
          "medisCode": "3J015000002327101",
          "itemName": "直接ビリルビン",
          "abnormalFlg": null,
          "normalValue": "0.0-0.4",
          "specimenCode": "023",
          "specimenName": "血清",
          "commentCode1": null,
          "comment1": null,
          "commentCode2": null,
          "comment2": null,
          "sortKey": null,
          "itemCode": "0002",
          "sampleDate": "2018-05-06 00:00",
          "patientId": "1.3.6.1.4.1.9414.70.1:00001",
          "unit": "mg/dL",
          "value": "0.1",
          "id": 1121
        },
        {
          "laboCode": null,
          "lipemia": null,
          "hemolysis": null,
          "dialysis": null,
          "reportStatus": "E",
          "groupCode": "01",
          "groupName": "生化学的検査",
          "parentCode": "0005",
          "medisCode": "3A010000002327101",
          "itemName": "総蛋白",
          "abnormalFlg": null,
          "normalValue": "6.7-8.3",
          "specimenCode": "023",
          "specimenName": "血清",
          "commentCode1": null,
          "comment1": null,
          "commentCode2": null,
          "comment2": null,
          "sortKey": null,
          "itemCode": "0005",
          "sampleDate": "2018-05-06 00:00",
          "patientId": "1.3.6.1.4.1.9414.70.1:00001",
          "unit": "g/dL",
          "value": "8.3",
          "id": 1122
        },
        {
          "laboCode": null,
          "lipemia": null,
          "hemolysis": null,
          "dialysis": null,
          "reportStatus": "E",
          "groupCode": "01",
          "groupName": "生化学的検査",
          "parentCode": "0006",
          "medisCode": "3A015000002327101",
          "itemName": "アルブミン",
          "abnormalFlg": null,
          "normalValue": "3.8-5.3",
          "specimenCode": "023",
          "specimenName": "血清",
          "commentCode1": null,
          "comment1": null,
          "commentCode2": null,
          "comment2": null,
          "sortKey": null,
          "itemCode": "0006",
          "sampleDate": "2018-05-06 00:00",
          "patientId": "1.3.6.1.4.1.9414.70.1:00001",
          "unit": "g/dL",
          "value": "4.5",
          "id": 1123
        },
        {
          "laboCode": null,
          "lipemia": null,
          "hemolysis": null,
          "dialysis": null,
          "reportStatus": "E",
          "groupCode": "01",
          "groupName": "生化学的検査",
          "parentCode": "0014",
          "medisCode": "3B035000002327201",
          "itemName": "GOT(AST)",
          "abnormalFlg": null,
          "normalValue": "10-40",
          "specimenCode": "023",
          "specimenName": "血清",
          "commentCode1": null,
          "comment1": null,
          "commentCode2": null,
          "comment2": null,
          "sortKey": null,
          "itemCode": "0014",
          "sampleDate": "2018-05-06 00:00",
          "patientId": "1.3.6.1.4.1.9414.70.1:00001",
          "unit": "IU/L",
          "value": "15",
          "id": 1124
        },
       ・
       ・
       ・     
      (中略)
       ・
       ・
       ・
        {
          "laboCode": null,
          "lipemia": null,
          "hemolysis": null,
          "dialysis": null,
          "reportStatus": "E",
          "groupCode": "07",
          "groupName": "一般検査",
          "parentCode": "0493",
          "medisCode": "1B040130201506211",
          "itemName": "便中ヒトヘモ定性2日目",
          "abnormalFlg": null,
          "normalValue": "陰性",
          "specimenCode": "015",
          "specimenName": "便",
          "commentCode1": null,
          "comment1": null,
          "commentCode2": null,
          "comment2": null,
          "sortKey": null,
          "itemCode": "0493",
          "sampleDate": "2018-05-04 00:00",
          "patientId": "1.3.6.1.4.1.9414.70.1:00001",
          "unit": null,
          "value": "インセイ",
          "id": 1084
        }
      ],
      "sampleDate": "2018-05-04 00:00",
      "laboCenterCode": "LSCC",
      "moduleKey": "LSCC2018050442011",
      "reportFormat": null,
      "patientName": "山下 浩介",
      "patientSex": "M",
      "numOfItems": null,
      "patientId": "1.3.6.1.4.1.9414.70.1:00001",
      "id": 1051
    }
  ]
}

#1はHTTPのGETメソッドを使ってユーザ情報を要求しているものと思われる。しかし、最後のリクエスト行にある「12」という数字が何を示しているのかわからなかった。

#2より検査結果の情報を1つずつ項目ごとにデータを要求していることがわかった。

レーダーチャートの表示2

前回 レーダーチャートの表示を行うことが出来たので、今回は実際の値を代入したグラフの描画を試みる。 .controller('RaderChartController', ['$scope', 'Countries', funct...