2

Hapi Fhir の RESTful サーバーがどのように機能するかを理解しようとしており、Observation リソース用の @Search メソッドをいくつか実装したいと考えていました。

現在、私はこの @Read 操作を持っています。これは、ブラウザーからリソース ( http://localhost:8080/NewFHIRServer/fhirのように) にアクセスしようとすると正常に機能します。

@Read()
public Observation readObservationById(@IdParam IdDt theId) {
    for (Entry<Long, Deque<Observation>> entry : myPatientIdToObservations.entrySet())
    {
        for (Observation obs : entry.getValue()) {
            if (obs.getId().equals(theId)) {
                return obs;
            }
        }
    }

    throw new ResourceNotFoundException(theId);
}    

しかし、@Search 操作で同様のことをしようとすると、エラーが発生します。次のように検索を実行して応答を取得できるようにしたいと思います (または同様の):

Bundle response = client
        .search()
        .forResource(Observation.class)
        .where(Observation.SUBJECT.hasId("Patient/1"))
        .execute();   

これを可能にするために、@Read メソッドに必要なパラメーターは何ですか? 私が今得ているエラーは次のとおりです。

このサーバーの FHIR エンドポイントは、パラメーター [[件名]] を使用した GET 操作 [監視] を処理する方法を知りません

私のヘッダーは次のようになっているため、機能しない理由は明らかです。

public Observation searchObservationById(@IdParam IdDt theId)     

これを理解するために例を見てきましたが、このパラメーターの構文が何を意味するのかよくわかりません。

public List<Patient> getPatient(@RequiredParam(name = Patient.SP_FAMILY) StringParam theFamilyName)...

この最後の例を使用するには、どのようにクエリを作成しますか?

ありがとうございました

4

1 に答える 1

2

@Search検索メソッドを実装するには、メソッドの代わりに使用する必要があります@Read@OptionalParam次に、またはで注釈が付けられた 0 個以上のパラメーターを使用します@RequiredParam

_id特定の例を機能させるには、検索パラメーターを実装する検索メソッドが必要です。

@Search public List<Patient> getPatient(@RequiredParam(name = Patient.SP_RES_ID) StringParam theId) { }

于 2016-03-08T19:08:09.227 に答える