# IDataPersistenceService{TData}

`IDataPersistenceService&lt;TData>` in assembly SanteDB.Core.Api version 3.0.1980.0

## Summary

Represents a data persistence service which is capable of storing and retrieving data to/from a data store

## Events

| Event      | Type                                           | Description                        |
| ---------- | ---------------------------------------------- | ---------------------------------- |
| Inserted   | EventHandler\<DataPersistedEventArgs\<TData>>  | Occurs when inserted.              |
| Inserting  | EventHandler\<DataPersistingEventArgs\<TData>> | Occurs when inserting.             |
| Updated    | EventHandler\<DataPersistedEventArgs\<TData>>  | Occurs when updated.               |
| Updating   | EventHandler\<DataPersistingEventArgs\<TData>> | Occurs when updating.              |
| Deleted    | EventHandler\<DataPersistedEventArgs\<TData>>  | Occurs when obsoleted.             |
| Deleting   | EventHandler\<DataPersistingEventArgs\<TData>> | Occurs when obsoleting.            |
| Queried    | EventHandler\<QueryResultEventArgs\<TData>>    | Occurs when queried.               |
| Querying   | EventHandler\<QueryRequestEventArgs\<TData>>   | Occurs when querying.              |
| Retrieving | EventHandler\<DataRetrievingEventArgs\<TData>> | Data is being retrieved            |
| Retrieved  | EventHandler\<DataRetrievedEventArgs\<TData>>  | Fired when data has been retrieved |

## Operations

| Operation | Response/Return         | Input/Parameter                                                                                                                                                                                                                                                                                                                | Description                             |
| --------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------- |
| Insert    | TData                   | <p><em>TData</em> <strong>data</strong><br><em>TransactionMode</em> <strong>transactionMode</strong><br><em>IPrincipal</em> <strong>principal</strong></p>                                                                                                                                                                     | Insert the specified data.              |
| Update    | TData                   | <p><em>TData</em> <strong>data</strong><br><em>TransactionMode</em> <strong>transactionMode</strong><br><em>IPrincipal</em> <strong>principal</strong></p>                                                                                                                                                                     | Update the specified data               |
| Delete    | TData                   | <p><em>Guid</em> <strong>key</strong><br><em>TransactionMode</em> <strong>transactionMode</strong><br><em>IPrincipal</em> <strong>principal</strong></p>                                                                                                                                                                       | Delete the specified identified data    |
| Get       | TData                   | <p><em>Guid</em> <strong>key</strong><br><em>Nullable\<Guid></em> <strong>versionKey</strong><br><em>IPrincipal</em> <strong>principal</strong></p>                                                                                                                                                                            | Get the object with identifier .        |
| Query     | IQueryResultSet\<TData> | <p><em>Expression\<Func\<TData,Boolean>></em> <strong>query</strong><br><em>IPrincipal</em> <strong>principal</strong></p>                                                                                                                                                                                                     | Query for whose current version matches |
| Query     | IEnumerable\<TData>     | <p><em>Expression\<Func\<TData,Boolean>></em> <strong>query</strong><br><em>Int32</em> <strong>offset</strong><br><em>Nullable\<Int32></em> <strong>count</strong><br><em>Int32&</em> <strong>totalResults</strong><br><em>IPrincipal</em> <strong>principal</strong><br><em>ModelSort\`1\[]</em> <strong>orderBy</strong></p> | Query for whose current version matches |
| Count     | Int64                   | <p><em>Expression\<Func\<TData,Boolean>></em> <strong>query</strong><br><em>IPrincipal</em> <strong>authContext</strong></p>                                                                                                                                                                                                   | Performs a fast count                   |

## Implementations

### UpstreamDiagnosticRepository - (SanteDB.Client)

Upstream diagnostic repository

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Client.Upstream.Management.UpstreamDiagnosticRepository, SanteDB.Client, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ADO.NET Audit Repository - (SanteDB.Persistence.Auditing.ADO)

Represents a service which is responsible for the storage of audits

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Auditing.ADO.Services.AdoAuditRepositoryService, SanteDB.Persistence.Auditing.ADO, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### BaseEntityDataPersistenceService\<TModel,TDbModel> - (SanteDB.Persistence.Data)

Represents a persistence service which has behaviors to properly persist [BaseEntityData](http://santesuite.org/assets/doc/net/html/T_SanteDB_Core_Model_BaseEntityData.htm)

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### BasePersistenceService\<TModel,TDbModel> - (SanteDB.Persistence.Data)

Base persistence services

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### IdentifiedDataPersistenceService\<TModel,TDbModel> - (SanteDB.Persistence.Data)

This persistence class represents a persistence service which is capable of storing and maintaining an IdentifiedData instance and its equivalent IDbIdentified

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### NonVersionedDataPersistenceService\<TModel,TDbModel> - (SanteDB.Persistence.Data)

A class which persists non-versioned data (which has updated timestamps)

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### VersionedAssociationPersistenceService\<TModel,TDbModel> - (SanteDB.Persistence.Data)

Abstract class for versioned associations

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### VersionedDataPersistenceService\<TModel,TDbModel,TDbKeyModel> - (SanteDB.Persistence.Data)

Persistence service which handles versioned objects

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### SecurityApplicationPersistenceService - (SanteDB.Persistence.Data)

A persistence service that handles security applications

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Security.SecurityApplicationPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### SecurityChallengePersistenceService - (SanteDB.Persistence.Data)

Persistence service that stores and retrieves security challenges

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Security.SecurityChallengePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### SecurityDevicePersistenceService - (SanteDB.Persistence.Data)

Persistence service that works with SecurityUser instances

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Security.SecurityDevicePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### SecurityPolicyPersistenceService - (SanteDB.Persistence.Data)

Persistence service that works with SecurityPolicy objects

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Security.SecurityPolicyPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### SecurityProvenancePersistenceService - (SanteDB.Persistence.Data)

Security provenance persistence service

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Security.SecurityProvenancePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### SecurityRolePersistenceService - (SanteDB.Persistence.Data)

Persistence service that works with SecurityApplication objects

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Security.SecurityRolePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### SecurityUserPersistenceService - (SanteDB.Persistence.Data)

Persistence service that works with SecurityApplication objects

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Security.SecurityUserPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### MailboxMessagePersistenceService - (SanteDB.Persistence.Data)

Represents a persistence service which can persist the assocation between a mail message and mailbox

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Mail.MailboxMessagePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### MailboxPersistenceService - (SanteDB.Persistence.Data)

Persistence service that can persist and handle mailboxes

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Mail.MailboxPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### MailMessagePersistenceService - (SanteDB.Persistence.Data)

Mail message persistence service which can handles the persistence of [MailMessage](http://santesuite.org/assets/doc/net/html/T_SanteDB_Core_Mail_MailMessage.htm) with [DbMailMessage](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Model_Mail_DbMailMessage.htm)

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Mail.MailMessagePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ApplicationEntityPersistenceService - (SanteDB.Persistence.Data)

Application entity persistence serivce for application entities

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.ApplicationEntityPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ContainerPersistenceService - (SanteDB.Persistence.Data)

Represents a persistence service that stores/reads containers

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.ContainerPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### DeviceEntityPersistenceService - (SanteDB.Persistence.Data)

Device entity persistence serivce for device entities

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.DeviceEntityPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityAddressComponentPersistenceService - (SanteDB.Persistence.Data)

Entity address component persistence

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityAddressComponentPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityAddressPersistenceService - (SanteDB.Persistence.Data)

A persistence service which operates on [EntityAddress](http://santesuite.org/assets/doc/net/html/T_SanteDB_Core_Model_Entities_EntityAddress.htm)

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityAddressPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityAssociationPersistenceService\<TModel,TDbModel> - (SanteDB.Persistence.Data)

A generic implementation of the version association which points at an act

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### EntityDerivedPersistenceService\<TEntity,TDbTopLevelTable,TDbEntitySubTable> - (SanteDB.Persistence.Data)

Entity derived persistence service which is responsible for persisting entities which have an intermediary table

#### Description

This class is used for higher level entities where the entity is comprised of three sub-tables where links to [DbEntityVersion](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Model_Entities_DbEntityVersion.htm) via

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### EntityDerivedPersistenceService\<TEntity,TDbEntitySubTable> - (SanteDB.Persistence.Data)

Entity derived persistence service with one sub entity table

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### EntityDerivedPersistenceService\<TEntity> - (SanteDB.Persistence.Data)

Persistence service that is responsible for storing and retrieving entities

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### EntityExtensionPersistenceService - (SanteDB.Persistence.Data)

Entity extension persistence service

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityExtensionPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityIdentifierPersistenceService - (SanteDB.Persistence.Data)

Persistence service for entity identifiers

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityIdentifierPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityNameComponentPersistenceService - (SanteDB.Persistence.Data)

Entity name component persistence

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityNameComponentPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityNamePersistenceService - (SanteDB.Persistence.Data)

A persistence service which operates on [EntityAddress](http://santesuite.org/assets/doc/net/html/T_SanteDB_Core_Model_Entities_EntityAddress.htm)

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityNamePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityNotePersistenceService - (SanteDB.Persistence.Data)

Persistence service for entity notes

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityNotePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityPersistenceService - (SanteDB.Persistence.Data)

An persistence service that handles [Entity](http://santesuite.org/assets/doc/net/html/T_SanteDB_Core_Model_Entities_Entity.htm)

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityRelationshipPersistenceService - (SanteDB.Persistence.Data)

A persistence service which handles entity relationships

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityRelationshipPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityTagPersistenceService - (SanteDB.Persistence.Data)

Entity tag persistence

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityTagPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### EntityTelecomPersistenceService - (SanteDB.Persistence.Data)

A persistence service that operates on telecoms

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.EntityTelecomPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ManufacturedMaterialPersistenceService - (SanteDB.Persistence.Data)

A persistence service which is responsible for managing manufactured materials

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.ManufacturedMaterialPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### MaterialPersistenceService - (SanteDB.Persistence.Data)

An [EntityDerivedPersistenceService\`1](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityDerivedPersistenceService_1.htm) which stores and manages entities

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.MaterialPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### NonPersonLivingSubjectPersistenceService - (SanteDB.Persistence.Data)

Persistence service which is responsible for management of non-person living subjects (like animals, food, substances, viruses, etc.)

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.NonPersonLivingSubjectPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### OrganizationPersistenceService - (SanteDB.Persistence.Data)

A persistence service which is able to persist and load [Organization](http://santesuite.org/assets/doc/net/html/T_SanteDB_Core_Model_Entities_Organization.htm)

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.OrganizationPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### PatientPersistenceService - (SanteDB.Persistence.Data)

Persistence service which handles the storage of Patient resources

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.PatientPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### PersonDerivedPersistenceService\<TModel,TDbModel> - (SanteDB.Persistence.Data)

A persistence service which is derived from a person persistence

#### Description

This class exists to ensure that LanguageCommunication is properly inserted on sub-classes of the Person class

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### PersonLanguageCommunicationPersistenceService - (SanteDB.Persistence.Data)

Persistence service for language of communication

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.PersonLanguageCommunicationPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### PersonPersistenceService - (SanteDB.Persistence.Data)

Persistence service which is responsible for managing persons

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.PersonPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### PlacePersistenceService - (SanteDB.Persistence.Data)

A persistence service class which stores and retrieves places

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.PlacePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### PlaceServicePersistenceService - (SanteDB.Persistence.Data)

Place vs/ service persistence manager

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.PlaceServicePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ProviderPersistenceService - (SanteDB.Persistence.Data)

Persistence service which handles provider classes

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.ProviderPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### UserEntityPersistenceService - (SanteDB.Persistence.Data)

Persistence service which stores and manages

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Entities.UserEntityPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### AssigningAuthorityPersistenceService - (SanteDB.Persistence.Data)

Assigning authority persistence

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.AssigningAuthorityPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### CodeSystemPersistenceService - (SanteDB.Persistence.Data)

Code system persistence service

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.CodeSystemPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ConceptClassPersistenceService - (SanteDB.Persistence.Data)

Concept class persistence services

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ConceptClassPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ConceptNamePersistenceService - (SanteDB.Persistence.Data)

Concept name persistence services

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ConceptNamePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ConceptPersistenceService - (SanteDB.Persistence.Data)

Persistence service for concepts

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ConceptPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ConceptReferencePersistenceBase\<TModel,TDbModel> - (SanteDB.Persistence.Data)

Represents the concept relationship persistence service

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### ConceptReferenceTermPersistenceService - (SanteDB.Persistence.Data)

Concept to Reference term persistence service

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ConceptReferenceTermPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ConceptRelationshipPersistenceService - (SanteDB.Persistence.Data)

Concept relationship persistence service

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ConceptRelationshipPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ConceptRelationshipTypePersistenceService - (SanteDB.Persistence.Data)

Concept relationship type persistnece

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ConceptRelationshipTypePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ConceptSetCompositionPersistenceService - (SanteDB.Persistence.Data)

Concept set composition persistence

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ConceptSetCompositionPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ConceptSetPersistenceService - (SanteDB.Persistence.Data)

ConceptSet persistence services for ADO

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ConceptSetPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ExtensionTypePersistenceService - (SanteDB.Persistence.Data)

Extension type persistence

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ExtensionTypePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### GeoTagPersistenceService - (SanteDB.Persistence.Data)

GEO Tag Persistence

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.GeoTagPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### IdentityDomainPersistenceService - (SanteDB.Persistence.Data)

Assigning authority persistence service

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.IdentityDomainPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ProtocolPersistenceService - (SanteDB.Persistence.Data)

Protocol persistence services

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ProtocolPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ReferenceTermNamePersistenceService - (SanteDB.Persistence.Data)

A persistence service which stores and manages reference term display names

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ReferenceTermNamePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ReferenceTermPersistenceService - (SanteDB.Persistence.Data)

Persistence service for reference terms.

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.ReferenceTermPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### TemplateDefinitionPersistenceService - (SanteDB.Persistence.Data)

Template definition persistence services

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.DataTypes.TemplateDefinitionPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### BundlePersistenceService - (SanteDB.Persistence.Data)

Represents a persistence service that wraps and persists the objects in a bundle

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Collections.BundlePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ActAssociationPersistenceService\<TModel,TDbModel> - (SanteDB.Persistence.Data)

A generic implementation of the version association which points at an act

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### ActDerivedPersistenceService\<TAct,TDbTopLevelTable,TDbActSubTable> - (SanteDB.Persistence.Data)

Entity derived persistence service which is responsible for persisting entities which have an intermediary table

#### Description

This class is used for higher level entities where the entity is comprised of three sub-tables where links to [DbActVersion](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Model_Acts_DbActVersion.htm) via

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### ActDerivedPersistenceService\<TAct,TDbActSubTable> - (SanteDB.Persistence.Data)

An act derived persistence service where the act has a sub-table storing child data

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### ActDerivedPersistenceService\<TAct> - (SanteDB.Persistence.Data)

Persistence service that is responsible for the storing and retrieving of acts

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### ActExtensionPersistenceService - (SanteDB.Persistence.Data)

Entity extension persistence service

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ActExtensionPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ActIdentifierPersistenceService - (SanteDB.Persistence.Data)

Persistence service for act identifiers

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ActIdentifierPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ActNotePersistenceService - (SanteDB.Persistence.Data)

Persistence service for act notes

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ActNotePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ActParticipationPersistenceService - (SanteDB.Persistence.Data)

Persistence service between act and act relationship

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ActParticipationPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ActPersistenceService - (SanteDB.Persistence.Data)

Persistence service which manages acts

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ActPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ActProtocolPersistenceService - (SanteDB.Persistence.Data)

Act Protocol persistence services

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ActProtocolPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ActRelationshipPersistenceService - (SanteDB.Persistence.Data)

Persistence service between act and act relationship

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ActRelationshipPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ActTagPersistenceService - (SanteDB.Persistence.Data)

A tag persistence service for ActTags

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ActTagPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### CarePathwayDefinitionPersistenceService - (SanteDB.Persistence.Data)

Persistence service for care pathway

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.CarePathwayDefinitionPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### CarePlanPersistenceService - (SanteDB.Persistence.Data)

Persistence service which stores care plans

#### Description

The care plan storage has no specific storage requirements for care plans

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.CarePlanPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### CodedObservationPersistenceService - (SanteDB.Persistence.Data)

A [ActDerivedPersistenceService\`2](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActDerivedPersistenceService_2.htm) which stores coded observations

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.CodedObservationPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ControlActPersistenceService - (SanteDB.Persistence.Data)

Persistence service which stores controlling acts

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ControlActPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### NarrativePersistenceService - (SanteDB.Persistence.Data)

Persistence service that handles narratives

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.NarrativePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ObservationDerivedPersistenceService\<TModel,TDbModel> - (SanteDB.Persistence.Data)

Represents a persistence service which stores and retrieves observation based table

{% hint style="info" %}
This service implementation is abstract or is a generic definition. It is intended to be implemented or constructed at runtime from other services and cannot be used directly
{% endhint %}

### ObservationPersistenceService - (SanteDB.Persistence.Data)

Generic observation persistence service to handle Observation calls

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ObservationPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### PatientEncounterArrangementPersistenceService - (SanteDB.Persistence.Data)

Patient encounter arrangement persistence service

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.PatientEncounterArrangementPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### PatientEncounterPersistenceService - (SanteDB.Persistence.Data)

Patient encounter based persistence service

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.PatientEncounterPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ProcedurePersistenceService - (SanteDB.Persistence.Data)

Persistence service which can store and retrieve patient procedures

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ProcedurePersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### ProtocolPersistenceService - (SanteDB.Persistence.Data)

A [IDataPersistenceService\`1](http://santesuite.org/assets/doc/net/html/T_SanteDB_Core_Services_IDataPersistenceService_1.htm) which is responsible for the storage and maintenance of [Protocol](http://santesuite.org/assets/doc/net/html/T_SanteDB_Core_Model_Acts_Protocol.htm) definitions

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.ProtocolPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### QuantityObservationPersistenceService - (SanteDB.Persistence.Data)

An observation persistence service which can manage observations which are quantities (value + unit)

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.QuantityObservationPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### SubstanceAdministrationPersistenceService - (SanteDB.Persistence.Data)

Class which can persist and manage substance administrations in the database

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.SubstanceAdministrationPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### TextObservationPersistenceService - (SanteDB.Persistence.Data)

Persistence service which can store and retrieve text observations

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.Persistence.Acts.TextObservationPersistenceService, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### E-Mail Diagnostic (Bug) Report Submission - (SanteDB.Persistence.Diagnostics.Email)

TODO: Document this

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Diagnostics.Email.DiagnosticReportPersistenceService, SanteDB.Persistence.Diagnostics.Email, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### JIRA Based Diagnostic (Bug) Report Submissions - (SanteDB.Persistence.Diagnostics.Jira)

TODO: Document this

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Diagnostics.Jira.JiraDiagnosticReportPersistenceService, SanteDB.Persistence.Diagnostics.Jira, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

### MdmEntityRelationshipPersistenceProvider - (SanteDB.Persistence.MDM)

Relationship persistence provider passed through to underlying types

#### Service Registration

```markup
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.MDM.Services.Resources.MdmEntityRelationshipPersistenceProvider, SanteDB.Persistence.MDM, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>
```

## Example Implementation

```csharp
/// Example Implementation
using SanteDB.Core.Services;
/// Other usings here
public class MyDataPersistenceService<TData> : SanteDB.Core.Services.IDataPersistenceService<TData> { 
	public String ServiceName => "My own IDataPersistenceService`1 service";
	/// <summary>
	/// Occurs when inserted.
	/// </summary>
	public event EventHandler<DataPersistedEventArgs<TData>> Inserted;
	/// <summary>
	/// Occurs when inserting.
	/// </summary>
	public event EventHandler<DataPersistingEventArgs<TData>> Inserting;
	/// <summary>
	/// Occurs when updated.
	/// </summary>
	public event EventHandler<DataPersistedEventArgs<TData>> Updated;
	/// <summary>
	/// Occurs when updating.
	/// </summary>
	public event EventHandler<DataPersistingEventArgs<TData>> Updating;
	/// <summary>
	/// Occurs when obsoleted.
	/// </summary>
	public event EventHandler<DataPersistedEventArgs<TData>> Deleted;
	/// <summary>
	/// Occurs when obsoleting.
	/// </summary>
	public event EventHandler<DataPersistingEventArgs<TData>> Deleting;
	/// <summary>
	/// Occurs when queried.
	/// </summary>
	public event EventHandler<QueryResultEventArgs<TData>> Queried;
	/// <summary>
	/// Occurs when querying.
	/// </summary>
	public event EventHandler<QueryRequestEventArgs<TData>> Querying;
	/// <summary>
	/// Data is being retrieved
	/// </summary>
	public event EventHandler<DataRetrievingEventArgs<TData>> Retrieving;
	/// <summary>
	/// Fired when data has been retrieved
	/// </summary>
	public event EventHandler<DataRetrievedEventArgs<TData>> Retrieved;
	/// <summary>
	/// Insert the specified data.
	/// </summary>
	public TData Insert(TData data,TransactionMode transactionMode,IPrincipal principal){
		throw new System.NotImplementedException();
	}
	/// <summary>
	/// Update the specified data
	/// </summary>
	public TData Update(TData data,TransactionMode transactionMode,IPrincipal principal){
		throw new System.NotImplementedException();
	}
	/// <summary>
	/// Delete the specified identified data
	/// </summary>
	public TData Delete(Guid key,TransactionMode transactionMode,IPrincipal principal){
		throw new System.NotImplementedException();
	}
	/// <summary>
	/// Get the object with identifier .
	/// </summary>
	public TData Get(Guid key,Nullable<Guid> versionKey,IPrincipal principal){
		throw new System.NotImplementedException();
	}
	/// <summary>
	/// Query for  whose current version matches
	/// </summary>
	public IQueryResultSet<TData> Query(Expression<Func<TData,Boolean>> query,IPrincipal principal){
		throw new System.NotImplementedException();
	}
	/// <summary>
	/// Query for  whose current version matches
	/// </summary>
	public IEnumerable<TData> Query(Expression<Func<TData,Boolean>> query,Int32 offset,Nullable<Int32> count,Int32& totalResults,IPrincipal principal,ModelSort`1[] orderBy){
		throw new System.NotImplementedException();
	}
	/// <summary>
	/// Performs a fast count
	/// </summary>
	public Int64 Count(Expression<Func<TData,Boolean>> query,IPrincipal authContext){
		throw new System.NotImplementedException();
	}
}
```

## References

* [IDataPersistenceService\<TData> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Core_Services_IDataPersistenceService_1.htm)
* [UpstreamDiagnosticRepository C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Client_Upstream_Management_UpstreamDiagnosticRepository.htm)
* [AdoAuditRepositoryService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Auditing_ADO_Services_AdoAuditRepositoryService.htm)
* [BaseEntityDataPersistenceService\<TModel,TDbModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_BaseEntityDataPersistenceService_2.htm)
* [BasePersistenceService\<TModel,TDbModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_BasePersistenceService_2.htm)
* [IdentifiedDataPersistenceService\<TModel,TDbModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_IdentifiedDataPersistenceService_2.htm)
* [NonVersionedDataPersistenceService\<TModel,TDbModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_NonVersionedDataPersistenceService_2.htm)
* [VersionedAssociationPersistenceService\<TModel,TDbModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_VersionedAssociationPersistenceService_2.htm)
* [VersionedDataPersistenceService\<TModel,TDbModel,TDbKeyModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_VersionedDataPersistenceService_3.htm)
* [SecurityApplicationPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Security_SecurityApplicationPersistenceService.htm)
* [SecurityChallengePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Security_SecurityChallengePersistenceService.htm)
* [SecurityDevicePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Security_SecurityDevicePersistenceService.htm)
* [SecurityPolicyPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Security_SecurityPolicyPersistenceService.htm)
* [SecurityProvenancePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Security_SecurityProvenancePersistenceService.htm)
* [SecurityRolePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Security_SecurityRolePersistenceService.htm)
* [SecurityUserPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Security_SecurityUserPersistenceService.htm)
* [MailboxMessagePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Mail_MailboxMessagePersistenceService.htm)
* [MailboxPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Mail_MailboxPersistenceService.htm)
* [MailMessagePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Mail_MailMessagePersistenceService.htm)
* [ApplicationEntityPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_ApplicationEntityPersistenceService.htm)
* [ContainerPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_ContainerPersistenceService.htm)
* [DeviceEntityPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_DeviceEntityPersistenceService.htm)
* [EntityAddressComponentPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityAddressComponentPersistenceService.htm)
* [EntityAddressPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityAddressPersistenceService.htm)
* [EntityAssociationPersistenceService\<TModel,TDbModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityAssociationPersistenceService_2.htm)
* [EntityDerivedPersistenceService\<TEntity,TDbTopLevelTable,TDbEntitySubTable> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityDerivedPersistenceService_3.htm)
* [EntityDerivedPersistenceService\<TEntity,TDbEntitySubTable> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityDerivedPersistenceService_2.htm)
* [EntityDerivedPersistenceService\<TEntity> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityDerivedPersistenceService_1.htm)
* [EntityExtensionPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityExtensionPersistenceService.htm)
* [EntityIdentifierPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityIdentifierPersistenceService.htm)
* [EntityNameComponentPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityNameComponentPersistenceService.htm)
* [EntityNamePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityNamePersistenceService.htm)
* [EntityNotePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityNotePersistenceService.htm)
* [EntityPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityPersistenceService.htm)
* [EntityRelationshipPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityRelationshipPersistenceService.htm)
* [EntityTagPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityTagPersistenceService.htm)
* [EntityTelecomPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_EntityTelecomPersistenceService.htm)
* [ManufacturedMaterialPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_ManufacturedMaterialPersistenceService.htm)
* [MaterialPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_MaterialPersistenceService.htm)
* [NonPersonLivingSubjectPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_NonPersonLivingSubjectPersistenceService.htm)
* [OrganizationPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_OrganizationPersistenceService.htm)
* [PatientPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_PatientPersistenceService.htm)
* [PersonDerivedPersistenceService\<TModel,TDbModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_PersonDerivedPersistenceService_2.htm)
* [PersonLanguageCommunicationPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_PersonLanguageCommunicationPersistenceService.htm)
* [PersonPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_PersonPersistenceService.htm)
* [PlacePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_PlacePersistenceService.htm)
* [PlaceServicePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_PlaceServicePersistenceService.htm)
* [ProviderPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_ProviderPersistenceService.htm)
* [UserEntityPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Entities_UserEntityPersistenceService.htm)
* [AssigningAuthorityPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_AssigningAuthorityPersistenceService.htm)
* [CodeSystemPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_CodeSystemPersistenceService.htm)
* [ConceptClassPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ConceptClassPersistenceService.htm)
* [ConceptNamePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ConceptNamePersistenceService.htm)
* [ConceptPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ConceptPersistenceService.htm)
* [ConceptReferencePersistenceBase\<TModel,TDbModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ConceptReferencePersistenceBase_2.htm)
* [ConceptReferenceTermPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ConceptReferenceTermPersistenceService.htm)
* [ConceptRelationshipPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ConceptRelationshipPersistenceService.htm)
* [ConceptRelationshipTypePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ConceptRelationshipTypePersistenceService.htm)
* [ConceptSetCompositionPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ConceptSetCompositionPersistenceService.htm)
* [ConceptSetPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ConceptSetPersistenceService.htm)
* [ExtensionTypePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ExtensionTypePersistenceService.htm)
* [GeoTagPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_GeoTagPersistenceService.htm)
* [IdentityDomainPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_IdentityDomainPersistenceService.htm)
* [ProtocolPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ProtocolPersistenceService.htm)
* [ReferenceTermNamePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ReferenceTermNamePersistenceService.htm)
* [ReferenceTermPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_ReferenceTermPersistenceService.htm)
* [TemplateDefinitionPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_DataTypes_TemplateDefinitionPersistenceService.htm)
* [BundlePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Collections_BundlePersistenceService.htm)
* [ActAssociationPersistenceService\<TModel,TDbModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActAssociationPersistenceService_2.htm)
* [ActDerivedPersistenceService\<TAct,TDbTopLevelTable,TDbActSubTable> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActDerivedPersistenceService_3.htm)
* [ActDerivedPersistenceService\<TAct,TDbActSubTable> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActDerivedPersistenceService_2.htm)
* [ActDerivedPersistenceService\<TAct> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActDerivedPersistenceService_1.htm)
* [ActExtensionPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActExtensionPersistenceService.htm)
* [ActIdentifierPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActIdentifierPersistenceService.htm)
* [ActNotePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActNotePersistenceService.htm)
* [ActParticipationPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActParticipationPersistenceService.htm)
* [ActPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActPersistenceService.htm)
* [ActProtocolPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActProtocolPersistenceService.htm)
* [ActRelationshipPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActRelationshipPersistenceService.htm)
* [ActTagPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ActTagPersistenceService.htm)
* [CarePathwayDefinitionPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_CarePathwayDefinitionPersistenceService.htm)
* [CarePlanPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_CarePlanPersistenceService.htm)
* [CodedObservationPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_CodedObservationPersistenceService.htm)
* [ControlActPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ControlActPersistenceService.htm)
* [NarrativePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_NarrativePersistenceService.htm)
* [ObservationDerivedPersistenceService\<TModel,TDbModel> C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ObservationDerivedPersistenceService_2.htm)
* [ObservationPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ObservationPersistenceService.htm)
* [PatientEncounterArrangementPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_PatientEncounterArrangementPersistenceService.htm)
* [PatientEncounterPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_PatientEncounterPersistenceService.htm)
* [ProcedurePersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ProcedurePersistenceService.htm)
* [ProtocolPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_ProtocolPersistenceService.htm)
* [QuantityObservationPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_QuantityObservationPersistenceService.htm)
* [SubstanceAdministrationPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_SubstanceAdministrationPersistenceService.htm)
* [TextObservationPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Data_Services_Persistence_Acts_TextObservationPersistenceService.htm)
* [DiagnosticReportPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Diagnostics_Email_DiagnosticReportPersistenceService.htm)
* [JiraDiagnosticReportPersistenceService C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_Diagnostics_Jira_JiraDiagnosticReportPersistenceService.htm)
* [MdmEntityRelationshipPersistenceProvider C# Documentation](http://santesuite.org/assets/doc/net/html/T_SanteDB_Persistence_MDM_Services_Resources_MdmEntityRelationshipPersistenceProvider.htm)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.santesuite.org/developers/server-plugins/implementing-.net-features/service-definitions/idatapersistenceservice-tdata.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
