CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/pypi-fhirpy

Async/sync FHIR client for Python providing comprehensive API for CRUD operations over FHIR resources

Agent Success

Agent success rate when using this tile

68%

Improvement

Agent success rate improvement when using this tile compared to baseline

1.08x

Baseline

Agent success rate without this tile

63%

Overview
Eval results
Files

rubric.jsonevals/scenario-1/

{
  "context": "Evaluates how the solution uses fhir-py typed model support and the dump_resource hook to implement the typed patient/observation gateway. Focuses on client construction, typed model binding, and reliance on fhir-py CRUD/search helpers for typed results.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Client setup",
      "description": "Initializes SyncFHIRClient or AsyncFHIRClient with base URL/auth headers and passes the serialization_hook into dump_resource instead of handcrafting JSON payloads.",
      "max_score": 25
    },
    {
      "name": "Typed models",
      "description": "Defines PatientModel and ObservationModel that satisfy ResourceProtocol expectations and registers them with client.resource/client.resources via the model argument so CRUD/search operations yield those classes.",
      "max_score": 25
    },
    {
      "name": "Typed save",
      "description": "Persists patients through fhir-py helpers (e.g., resource.save or client.create on a typed resource) so the server-assigned id is populated on the returned PatientModel instance.",
      "max_score": 20
    },
    {
      "name": "Typed fetch",
      "description": "Retrieves patients using client.get or a typed resource.refresh so returned objects are PatientModel instances rather than raw dicts.",
      "max_score": 15
    },
    {
      "name": "Typed search results",
      "description": "Builds the weight query with resources(..., model=ObservationModel).search(...).sort(...).limit(...).fetch/fetch_all so the newest-first ObservationModel list comes directly from the typed SearchSet instead of manual parsing.",
      "max_score": 15
    }
  ]
}
tile.json