Serotiny is a modular TypeScript toolchain for FHIR (and friends).
Health data is spreading everywhere. FHIR is a big part of that. Serotiny is built for developers who need tools in the languages they know, with opinionated answers to solve common problems.
Features:
- A broken FHIR RESTful API implementation of base resources
- A non-existence [FHIR] GraphQL API implementation of base resources
- Actually good CDS Hooks Service support
- Modular design so that you can run 1 service or many
- In-memory persistence (please don't actually use this)
- Out of box typings support for FHIR R4 with generics
We're thinking about:
- SMART Apps/Launching
- Access control
- Building a Validator so
- CQL
- Profile support
- Deployment configurations
- Subscriptions/Streams
`
Serotiny exposes a Rest
service that
Serotiny exposes Service
and Card
classes which can be used from the @sero/cds-hooks
module.
"CDS Hooks" are a protocol separate from FHIR proper, but involve the use of its data structures.
Serotiny automatically scaffolds all of the necessary API routes in the spec when you create a new Service, and exposes a simple, typed function that executes on hookRequest
events.
Building support for this protocol as a distribution/access channel for novel clinical decision making techniques is super easy with Serotiny. Because of its modular design, CDS Hooks can be run as a totally standalone service: example/cds-hooks.ts
shows an instance of Serotiny in this configuration.
- Discovery service call
- Loading Services from
PlanDefinition
is not currently possible - Currently passes Touchstone with a warning
import { Service, Card } from "@sero/cds-hooks";
interface PatientPrefetch {
patient: fhir4.Patient;
}
export default new Service(
{
title: "Echo service",
hook: "patient-view",
description: "A demo service",
prefetch: {
patient: "Patient/{{context.patientId}}"
}
},
(request: CDSHooks.HookRequest<PatientPrefetch>) => {
const { patient } = request.prefetch;
return {
cards: [
new Card({
detail: "CDS Card Response",
source: {
label: "Serotiny Server",
},
summary: "Info"
})
]
}
}
)
- Support for /metadata and the Conformance/CapabilityStatement retrieval is working
- Mocked functions for the instance level, type level, and system level REST APIs
- CDS Hooks
npm install
npm run watch
npm run dev
Copyright Automate Medical Inc.