Code Monkey home page Code Monkey logo

SanteDB Core Project

Welcome to SanteDB community!

SanteDB provides a general purpose Clinical Data Repository (CDR) and client software for storage of applications in a variety of use cases. This repository is a meta-repository which contains the core modules of the SanteDB project. If you're looking to run SanteDB you'll want one of the other repositories such as:

Key Modules for iCDR and dCDR

SanteDB provides several solutions which can combined to morph SanteDB based on need.

  • SanteGuard Audit Repository:
    • Integrates IETF RFC3881 and NEMA DICOM audits into the audit store
    • Provides more detailed storage schema for audits in the SanteDB software stack
    • Enables Syslog receive endpoint over UDP, TCP, STCP, and HTTP
    • (Roadmap): Implements FHIR Audit Endpoints
  • SanteMPI Master Patient Index Addons:
    • Integrates rules for IHE PIX/PDQ v2 into SanteDB's HL7 messaging infrastructure
    • Provides enhanced user interfaces for searching, merging, and de-duplicating patients
    • (Roadmap): Implements FHIR PIXm and PDQm
  • SanteDB Enhanced Data Matcher:
    • Provides probabilistic and deterministic matching services for SanteDB
    • Extends the baseline SanteDB query matching engine with fuzzy API calls (soundex, metaphone, levenshtein, etc.)
  • SanteDB Business Intelligence Services (BIS):
    • Allows definition of re-usable BI components (Queries, Views, Reports)
    • (Roadmap): Exposing of measures via FHIR MeasureReport

Key Features of iCDR and dCDR

  • Privacy and Security
    • Full audit trail of all data operations within the solution
    • Audit shipping via IETF RFC3881 and NEMA DICOM
    • Allows easy integration with SIEM infrastructure and monitoring software
    • Implementation of OpenID Conect authentication
    • Allow policy based access controls on a per-device, per-user, per-application level
    • Customizable consent management system (PDP, PEP, PIP implementations) including consent override functions.
    • (Roadmap): Credential delegation (on-behalf of grants)
    • (Roadmap): Multi-role authentication (different policy grants based on site, job, etc.)
  • Standards based interfaces which allow full communication with the CDR, standards interfaces available include:
    • HL7 FHIR R3
    • HL7 Version 2.5
    • OAUTH2.0 & JWT
    • NEMA DICOM & RFC-3881 format security
    • GS1 BMS 3.3 XML (over AS.2 or REST)
  • Fully open interfaces using REST interfaces and either XML, JSON or condensed JSON for view-model applications. Provides 100% access to the CDR functionality
  • Support for transport compression schemes such as DEFLATE, GZIP, BZIP or LZMA
  • You can customize SanteDB for any use case using the following technologies:
    • HTML5 + JavaScript (AngularJS) for user interface screens (operates on all platforms that SanteDB operates on)
    • SanteDB CDSS RulesML an XML when/then rules engine
    • JavaScript business rule triggers based on ECMA Script 5 (before/after insert/update/delete/query triggers supported)
    • A robust plugin architecture for endless expansion of functionality in C#

SanteDB is based on the underlying CDR used by the Open Immunize Platform.

Getting Started

This project is a meta-project used for bundling and distributing the NUGET packages which make-up the rest of the SanteDB platform.

You don't need this project's source code to start developing SanteDB plugins and applications. That can be done by following the documentation over on the SanteDB Help Portal.

If you're looking to contribute to the core SanteDB source code tree, you can get started by cloning this core module set.

> git clone https://github.com/santedb/santedb.git
> cd santedb
> git submodule init
> git submodule update --remote

Ensure that nuget.exe is located in your path and that %localappdata%\nugetstaging, is registered as a local repository, then build the nuget packages for SanteDB with:

> build-nuget-symbols

Additional documentation for setup of individual SanteDB components can be found in each project repository.

Get All SanteDB Projects

This project represents the collection of SanteDB APIs that are used by other projects. These APIs and other projects are located in other repositories in the SanteDB community. If you would like to clone all of the SanteDB code to your local environment, use the command:

> cd ..
> santedb\cloneall.bat

This will clone all projects on the SanteDB project in the parent directory for SanteDB and will initialize any submodule references.

Compilation / Running on Linux

SanteDB has recently undergone a very massive refactor and all service references to WCF have been removed. This means it is theoretically possible to compile and run SanteDB on Linux. However, it should be known that at this early phase of development, SanteDB is still only officially tested and built on Microsoft Windows. As more time becomes available for testing, it will be done on Linux.

Pre-requisites for developing on Linux:

  • Mono Framework 5.x or higher
  • Git client
  • MonoDevelop
  • 7z

Projects which require special compilation steps in linux will have -linux appended to the file. For example, the santedb-linux.sln project will load linux specific projects.

To clone in linux:

$ git clone https://github.com/santedb/santedb.git
$ cd santedb
$ git submodule init
$ git submodule update --remote

To clone all projects:

$ cd ..
$ ./santedb/cloneall.sh

To build SanteDB on linux, you'll have to ensure that ~/.nugetstaging exists and is configured as a Nuget package source.

$ ./build-nuget-staging

Important Resources

SanteDB and its community partners SanteSuite Inc., and Fyfe Software Inc. provide a number of resources which may be useful for developers and implementers:

SanteSuite Community's Projects

applets icon applets

SanteDB Core Applets (ui, core, config, admin)

atnaapi icon atnaapi

The MEDIC ATNA API project provides a simple to use series of utility classes centered around creating IHE Audit Trail and Node Authentication (ATNA) audit messages (ITI-20)

client-registry icon client-registry

The Mohawk College MARC-HI/MEDIC Client Registry Reference Implementation represents the prototype Client Registry (Enterprise Master Patient Index - EMPI) developed under our Natural Sciences and Engineering Research Council of Canada (NSERC) grant to build a test version of the pan-Canadian Electronic Health Record System blueprint as prescribed by Canada Health Infoway.

dev-samples icon dev-samples

Development sample projects (applets, .NET plugins, etc.)

everest icon everest

The Everest Framework is designed to ease the creation, formatting, and transmission of HL7v3 and CDA structures with remote systems.

hl7-testing-tool icon hl7-testing-tool

C# console application to execute test suites for testing HL7v2 messaging.

jeverest icon jeverest

In short, the Everest Framework is designed to ease the creation, formatting, and transmission of HL7v3 structures with remote systems.

openiz icon openiz

Open Immunize seeks to provide a open source, customizable, enterprise scale jurisdictional IMS solution founded on the tenants of Open Architecture, Interoperability, Security & Privacy and Extensibility.

openizdc icon openizdc

The Open Immunize Disconnected Client (OpenIZ DC) is a complementary application to the OpenIZ IMS (Immunization Management Service). The IMS provides a headless service which is responsible for maintaining immunization state, centralized reporting, and forecasting. The disconnected client represents a mobile application framework which is capable of editing the data contained on the IMS in both online and offline mode.

razorlight icon razorlight

Template engine based on Microsoft's Razor parsing engine for .NET Core

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.