CDSS Clinical Protocol Repository

IClinicalProtocolRepositoryService in assembly SanteDB.Core.Api version 2.1.151.0

Summary

Contract for service implementations which store and manage definitions of Protocol

Description

Each protocol definition (stored in an instance of Protocol) should be backed by an implementation of the IClinicalProtocol interface. The primary responsibility of the IClinicalProtocolRepositoryService is to load these definitions from a user defined format (such as FHIR activity definitions, or the SanteDB XML CDSS format) and generate the structured data which can be stored in the primary SanteDB database.

Operations

OperationResponse/ReturnInput/ParameterDescription

FindProtocol

IEnumerable<Protocol>

Expression<Func<Protocol,Boolean>> predicate Int32 offset Nullable<Int32> count Int32& totalResults

Find protocols in the repository service

InsertProtocol

Protocol

Protocol data

Find protocols in the repository service

Implementations

Applet Based Clinical Protocol Repository - (SanteDB.Cdss.Xml)

Applet clinical protocol repository

Description

This implementation of the IClinicalProtocolRepositoryService is responsible for loading clinical protocols defined in SanteDB's CDSS XML format and translating them into Protocol instances which can then, in-turn, be linked with instances of Act which are also stored in the CDR.

Service Registration

...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Cdss.Xml.AppletClinicalProtocolRepository, SanteDB.Cdss.Xml, Version=2.1.151.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>

Example Implementation

/// Example Implementation
using SanteDB.Core.Services;
/// Other usings here
public class MyClinicalProtocolRepositoryService : SanteDB.Core.Services.IClinicalProtocolRepositoryService { 
	public String ServiceName => "My own IClinicalProtocolRepositoryService service";
	/// <summary>
	/// Find protocols in the repository service
	/// </summary>
	public IEnumerable<Protocol> FindProtocol(Expression<Func<Protocol,Boolean>> predicate,Int32 offset,Nullable<Int32> count,Int32& totalResults){
		throw new System.NotImplementedException();
	}
	/// <summary>
	/// Find protocols in the repository service
	/// </summary>
	public Protocol InsertProtocol(Protocol data){
		throw new System.NotImplementedException();
	}
}

References

Last updated