npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ahryman40k/typescript-over-asymmetrik

v0.0.9

Published

Library that run a FHIR microserver that handle a single FHIR resource

Downloads

8

Readme

Introduction

Library based on Asymmetrik node-fhir-server-core library
Thanks to it, I'm proud to offer to Typescript community a fully typed typescript FHIR server !

As asymmetrik still not accepted my pull request, I must use a fork.
You can find sources of that fork here

codecov

License: GPL v3

How it's work

If you are familiar with Angular framework, you will understand quickly how thing works.

You can also find a working exemple in the sample folder

1.Implement the server

A base class is present to help you to quickly define your own server. I mean:

  • Add custom middleware
  • Add additional routes to FHIR server

But in the most basic use, you have to define a server object as following

class MyServer extends AbstractServer {
    constructor(capabilities: CapabilitiesModule) {
        super(capabilities);
    }

    start(options: IServerOptions): Observable<IServerStatus> {
        return super.start(options);
    }

    stop(): void {
        return super.stop();
    }
}

2.Implement FHIR resources class

Now we can create classes to handle a fhir request on specific resource

class MyPatient implements ISearchCapability {
    search(): any {

    }
}

Fine, the most difficult is done !

3.Add decorators

Now we need to add some decorations on our resource class to tell the library how to use it. In the following exemple I will add Capability to my object to:

  • define a search capability in server's metadata
  • set kind of FHIR resource this object will handle
  • define which search parameters should be used with this object
@Capability({
    capability: ['search'],
    resource: "patient",
    criterias: ['identifier', 'name']

})
class MyPatient implements ISearchCapability {
    [...]
}

we also decorate our server to let it know about our capabilities

@Server({
    capabilities: [
        MyPatient
    ]
})
class MyServer extends AbstractServer {
    [...]
}

4.Bootstrap the server

Finally we call a bootstrapping function that will set up the asymmetrik server for us.

Static.Bootstrap(MyServer)
    .then(server => {
        server.start({ port: 3001 });
        console.log('server is running on port 3001')
    });

No more step is required, you can now focus on how resolve your search request !