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)...
この最後の例を使用するには、どのようにクエリを作成しますか?
ありがとうございました