Ocean Informatics vEHR Service Interface
Introduction
EhrGate is the Ocean Informatics virtual EHR middleware component. It can be deployed server-side or client-side, and is fully compliant to openEHR release 1.0.2. It uses standards AOM 1.4 archetypes and Ocean templates, which will be migrated to the forthcoming openEHR template specification. The following interfaces reflect the API as of early 2010. Things that might be desirable to do in contributing to an openEHR vEHR specification:
don't include initialisation functions
reduce statefulness of the interface
Specification
Initialisation
Description | Signature | Details |
|---|---|---|
Create EhrGate Instance |
static
IEhrGate Create()
| Returns |
Create EhrGate Instance With Session Context |
static
IEhrGate Create(string sessionTicket)
| Parameters |
Authenticate User |
string
AuthenticateUser(string userId,
string password)
| Parameters |
Session Management
Description | Signature | Details |
|---|---|---|
Open SessionObtains a session in the server; creates an |
string
OpenSession(string userId,
string authenticationToken)
| Parameters |
Close SessionUse the current EhrGate session ticket to call |
void
CloseSession()
|
|
Record Management
Description | Signature | Details |
|---|---|---|
Create EHR |
HierObjectId
CreateEhr(EhrStatus ehrStatus,
PartyProxy committer,
PartyRef gatekeeper)
| Parameters |
Find EHR |
HierObjectId
FindEhrId(string subjectId,
string subjectIdNamespace)
| Parameters |
Open EHR |
void
OpenEhr(HierObjectId ehrId)
| Parameters |
Use EHR |
void
UseEhr(HierObjectId ehrId)
| Parameters |
Close EHR |
void
CloseEhr(HierObjectId ehrId)
| Parameters |
Contribution Management
Description | Signature | Details |
|---|---|---|
Create Contribution |
void
CreateContribution()
|
|
Has Contribution |
bool
HasContribution { get; }
| Returns |
Commit Contribution |
void
CommitContribution(PartyProxy committer,
string comment,
DvCodedText changeType)
| Parameters |
Rollback Contribution |
void
RollbackContribution()
|
|
Data Creation and Modification
Description | Signature | Details |
|---|---|---|
Create New Composition |
ICompositionBuilder
CreateComposition(string templateId)
| Parameters |
Create New Composition Data |
ICompositionBuilder
CreateComposition(Composition composition)
| Parameters |
Modify Existing Composition |
ICompositionBuilder
ModifyComposition(HierObjectId compositionId)
| Parameters |
Modify existing composition against template |
ICompositionBuilder
ModifyComposition(HierObjectId compositionId,
string templateId)
| Parameters |
Modify existing composition data |
ICompositionBuilder
ModifyComposition(ObjectVersionId precedingVersionUid,
Composition composition)
| Parameters |
Replace existing composition |
ICompositionBuilder
ModifyComposition(HierObjectId compositionId,
string templateId,
bool populateComposition)
| Parameters |
Delete Composition |
void
DeleteComposition(HierObjectId compositionId)
| Parameters |
Get candidate compositions |
IResultSet
GetCandidateCompositions(string resultSetId,
string[] compositionPaths,
ArchetypeId compositionArchetypeId,
string compositionCriteria)
| Parameters |
Get Composition |
IComposition
GetComposition(HierObjectId compositionId,
string versionTime)
| Parameters
|
Get composition version |
IComposition
GetComposition(ObjectVersionId versionUid)
| Parameters |
Fine-grained Content Creation
There are various ways to create the fine-grained content of Compositions in EhrGate.
The most basic way is to use the generic Composition building functions.
Another common way is via the use of a Template Data Object (TDO), which is a programming artefact generated from an openEHR template. This example shows its use.
Queries
|
|
|
|---|---|---|
Register Query |
void
RegisterQuery(string queryId,
string queryStatement)
| Parameters |
Has Registered Query |
bool
HasRegisteredQuery(string queryId)
| Parameters |
Query Compositions |
string[]
QueryCompositions(string queryId)
| Parameters |
Execute predefined Query |
IResultSet
ExecuteQuery(string queryId,
bool replaceExisting)
| Parameters |
Execute Query Statement |
IResultSet
ExecuteQuery(string queryId,
string queryStatement)
| Parameters |
Run Registered Query |
int
RunQuery(string queryId)
| Parameters |
Retrieve Query Results |
IResultSet
RetrieveResults(string queryId,
int maxResults)
| Parameters |