0

次のコードを見てください。姓で検索する方法と、システムで検索する方法があります。コードに従って、これら 2 つのメソッドのそれぞれを呼び出して生成された結果を提供しました。システム検索で 3 人の患者が返されたことがわかります。3 番目の患者の姓はVaessenです。しかし、姓を検索するとVaessenタイムアウトが発生します。なぜこれが起こっているのかを理解するのを手伝ってくれませんか?

注: タイムアウト例外からわかるように、パブリック fhir サーバーhttp://fhirtest.uhn.ca/baseDstu3にクエリを実行しています。

public void findPatientsInFamily(String family) {
    System.out.printf("\n\nFinding patients in family %s\n", family);
    findPatients(Patient.FAMILY.matches().value(family));
}

public void findPatientsInSystem(String system) {
    System.out.printf("\n\nFinding patients in system %s\n", system);
    findPatients(Patient.IDENTIFIER.hasSystemWithAnyCode(system));
}

@SuppressWarnings("rawtypes")
public void findPatients(ICriterion criterion) {

    try {
        Bundle bundle = client.search().forResource(Patient.class).where(criterion).returnBundle(Bundle.class).execute();

        for (BundleEntryComponent entry : bundle.getEntry()) {
            if (entry.getResource().getResourceType() == ResourceType.Patient) {
                Patient patient = (Patient) entry.getResource();
                System.out.printf("%s\n", parser.encodeResourceToString(patient));
            }
        }
    }
    catch(Exception e) {
        System.out.printf("Cannot find patients\n%s\n", e.getMessage());
    }
}

findPatientsInSystem(String system) メソッドの結果:

Finding patients in system http://dmw.levy.com/mrn
<Patient xmlns="http://hl7.org/fhir">
   <id value="4172808"></id>
   <meta>
      <versionId value="1"></versionId>
      <lastUpdated value="2018-06-07T14:10:52.336+00:00"></lastUpdated>
   </meta>
   <text>
      <status value="generated"></status>
      <div xmlns="http://www.w3.org/1999/xhtml">
         <div class="hapiHeaderText">Rachael 
            <b>LANEHART </b>
         </div>
         <table class="hapiPropertyTable">
            <tbody>
               <tr>
                  <td>Identifier</td>
                  <td>12345</td>
               </tr>
               <tr>
                  <td>Date of birth</td>
                  <td>
                     <span>30 December 1985</span>
                  </td>
               </tr>
            </tbody>
         </table>
      </div>
   </text>
   <identifier>
      <system value="http://dmw.levy.com/mrn"></system>
      <value value="12345"></value>
   </identifier>
   <name>
      <family value="Lanehart"></family>
      <given value="Rachael"></given>
   </name>
   <gender value="female"></gender>
   <birthDate value="1985-12-30"></birthDate>
</Patient>
<Patient xmlns="http://hl7.org/fhir">
   <id value="4149602"></id>
   <meta>
      <versionId value="1"></versionId>
      <lastUpdated value="2018-06-06T20:52:11.831+00:00"></lastUpdated>
   </meta>
   <text>
      <status value="generated"></status>
      <div xmlns="http://www.w3.org/1999/xhtml">
         <div class="hapiHeaderText">Ravi 
            <b>THAKKAR </b>
         </div>
         <table class="hapiPropertyTable">
            <tbody>
               <tr>
                  <td>Identifier</td>
                  <td>12345</td>
               </tr>
               <tr>
                  <td>Date of birth</td>
                  <td>
                     <span>14 April 1962</span>
                  </td>
               </tr>
            </tbody>
         </table>
      </div>
   </text>
   <identifier>
      <system value="http://dmw.levy.com/mrn"></system>
      <value value="12345"></value>
   </identifier>
   <name>
      <family value="Thakkar"></family>
      <given value="Ravi"></given>
   </name>
   <gender value="male"></gender>
   <birthDate value="1962-04-14"></birthDate>
</Patient>
<Patient xmlns="http://hl7.org/fhir">
   <id value="4013201"></id>
   <meta>
      <versionId value="1"></versionId>
      <lastUpdated value="2018-06-01T18:30:23.902+00:00"></lastUpdated>
   </meta>
   <text>
      <status value="generated"></status>
      <div xmlns="http://www.w3.org/1999/xhtml">
         <div class="hapiHeaderText">Robert Jozef 
            <b>VAESSEN </b>
         </div>
         <table class="hapiPropertyTable">
            <tbody>
               <tr>
                  <td>Identifier</td>
                  <td>12345</td>
               </tr>
               <tr>
                  <td>Date of birth</td>
                  <td>
                     <span>30 January 1954</span>
                  </td>
               </tr>
            </tbody>
         </table>
      </div>
   </text>
   <identifier>
      <system value="http://dmw.levy.com/mrn"></system>
      <value value="12345"></value>
   </identifier>
   <name>
      <family value="Vaessen"></family>
      <given value="Robert"></given>
      <given value="Jozef"></given>
   </name>
   <gender value="male"></gender>
   <birthDate value="1954-01-30"></birthDate>
</Patient>

findPatientsInFamily(String family) メソッドの結果:

Finding patients in family Vaessen
Cannot find patients
Failed to parse response from server when performing GET to URL http://fhirtest.uhn.ca/baseDstu3/Patient?family=Vaessen - java.net.SocketTimeoutException: Read timed out
4

1 に答える 1

0

コードが FHIR サーバーにクエリを実行する方法は、システムまたは姓による患者検索に適しているはずです。

http://fhirtest.uhn.ca/の UI からパブリック テスト サーバーを試してみましたが、現在すべてがダウンしているようです。すべてのリクエストはエラーを返します。GIT https://github.com/jamesagnew/hapi-fhir/issues/998にはすでに問題が投稿されています。

また、サーバーがバックアップされたときに、非常に多くの患者データが存在する可能性があるため、大きな接続タイムアウトを設定するか、より多くのフィルター条件を指定しない限り、リクエストは依然としてエラーになります。

于 2018-06-13T14:58:21.540 に答える