[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Evolving COAS model
Folks,
as you worry about resource IDs and resource names and resource references -
keep this in mind -
this is a subset of the evolving COAS interface. as an application
developer in this space i do
need to worry about how can one apply the HRAC to the accesses being
attempted... :-)
for those of you interested in looking at all the related information:
http://www.protocol.com/engineering/corbamed/coas/incoming/
- regards
- juggy
//File: ObservationData.idl
#ifndef _OBSERVATION_DATA_IDL_
#define _OBSERVATION_DATA_IDL_
#include <NamingAuthority.idl>
#include <TerminologyServices.idl>
#include <PersonIdService.idl>
#include "TimeDefs.idl"
#pragma prefix "omg.org"
module ObservationData
{
struct NameValuePair {
NamingAuthority::QualifiedNameStr name;
CORBA::ValueBase val;
}
typedef sequence< NameValuePair > NVPairSeq;
typedef NamingAuthority::QualifiedName OID;
value Item;
typedef sequence< Item > ItemSeq;
// This definition only models tree structure relationships
// not the generic any item to any item relationships
struct ItemRelation {
TerminologyServices::QualifiedCode relationship;
ItemSeq targets;
};
typedef sequence< ItemRelation > RelatedItemSeq;
value Item {
PersonIdService::QualifiedPersonId pid;
TerminologyServices::QualifiedCode name;
TimeSpan time_span;
OID oid;
NVPairSeq context;
ItemSeq member_items;
RelatedItemSeq related_items;
};
};
#endif // _OBSERVATION_DATA_IDL_
//File: ObservationAccess.idl
#ifndef _OBSERVATION_ACCESS_IDL_
#define _OBSERVATION_ACCESS_IDL_
#include <TerminologyServices.idl>
#include <PersonIdService.idl>
#include <CosNotifyComm.idl>
#include <CosNotifyChannelAdmin.idl>
#include <CosEventChannelAdmin.idl>
#include "ObservationData.idl"
#pragma prefix "omg.org"
module ObservationAccess {
interface EventConsumer;
interface EventSupplier;
interface PatientAccess;
interface IdentityAccess;
interface ConstraintAccess;
interface FederatedAccess;
interface OAComponent {
readonly attribute PersonIdService::DomainName domain_name;
readonly attribute PersonIdService::ComponentName component_name;
readonly attribute EventConsumer event_consumer;
readonly attribute EventSupplier event_supplier;
readonly attribute PatientAccess patient_access;
readonly attribute IdentityAccess identify_access;
readonly attribute ConstraintAccess constraint_access;
readonly attribute FederatedAccess federated_access;
readonly attribute PersonIdService::IdentificationComponent pid_component;
readonly attribute TerminologyServices::TerminologyService
terminology_service;
readonly attribute CosTrader::TraderComponents trader_components;
readonly attribute CosNaming::NamingContext naming_context;
};
interface PatientAccess : OAComponent {
Obv ovservation_fetch ( in OID oid )
raises ( InvalidId, UnknownId );
ObvSeq observation_get (
in PersonIdService::PersonId who,
in TerminologyService::QualifiedCodeSeq what,
in TimeSpan when )
raises ( UnknownId, InvalidId, InvalidCode, InvalidTimeSpan );
ObvSeq observation_available (
in PersonIdService::PersonIdSeq who,
in TerminologyServices::QualifiedCodeSeq what,
in TimeSpan when )
raises ( UnknownIds, InvalidIds, InvalidCode, InvalidTimeSpan );
ObvSeq observation_query (
in PersonIdService::PersonIdSeq who,
in TerminologyService::QualifiedCodeSeq what,
in TimeSpan when,
in ContextSeq other )
raises ( UnknownIds, InvalidIds, InvalidCode, InvalidTimeSpan );
ObvSeq observation_query_with_policy (
in PersonIdService::PersonIdSeq who,
in TerminologyService::QualifiedCodeSeq what,
in TimeSpan when,
in ContextSeq other,
in PolicySeq policy )
raises ( UnknownIds, InvalidIds, InvalidCode, InvalidTimeSpan );
};
interface ConstraintAccess : OAComponent {
ObvSeq contraint_query (
in Constraint the_constraint,
in PolicySeq policy )
raises ( ... );
};
interface IdentityAccess : OAComponent {
Identity get_identity_object ( in PersonIdService::PersonId who )
raises ( UnknownId, InvalidId );
IdentitySeq get_identity_seq ( in PersonIdService::PersonIdSeq who )
raises (unknownIds, InvalidIds );
};
interface Identity {
ObvSeq observation_get (
in TerminologyService::QualifiedCodeSeq what,
in TimeSpan when )
raises ( InvalidCode, InvalidTimeSpan );
ObvSeq observation_available (
in TerminologyServices::QualifiedCodeSeq what,
in TimeSpan when )
raises ( InvalidCode, InvalidTimeSpan );
ObvSeq observation_query (
in TerminologyService::QualifiedCodeSeq what,
in TimeSpan when,
in ContextSeq other )
raises ( InvalidCode, InvalidTimeSpan );
ObvSeq observation_query_with_policy (
in TerminologyService::QualifiedCodeSeq what,
in TimeSpan when,
in ContextSeq other,
in PolicySeq policy )
raises ( InvalidCode, InvalidTimeSpan );
void done ( )
raises ( ... );
};
interface EventConsumer : OAComponent,
CosNotifyComm::StructuredPushConsumer {
readonly attribute CosNotifyChannelAdmin::EventChannel event_channel;
void connect_structured_push_supplier ( in
CosNotifyComm::StructuredPushSupplier supplier )
raises ( CosEventChannelAdmin::AlreadyConnected, ... );
};
interface EventSupplier : OAComponent,
CosNotifyComm::StructuredPushSupplier {
readonly attribute CosNotifyChannelAdmin::EventChannel event_channel;
void connect_structured_push_consumer ( in
CosNotifyComm::StructuredPushConsumer consumer )
raises ( CosEventChannelAdmin::AlreadyConnected, ... );
UID subscribe (
in PersonIdService::PersonIdSeq who,
in TerminologyServices::QualifiedCodeSeq what,
in ContextSeq other,
in PolicySeq policy )
raises ( UnknownIds, InvalidIds, InvalidCode );
void unsubscribe ( in UID the_uid )
raises ( Unsubscribed, ... );
void get_subscription (
in UID the_uid,
out PersonIdService::PersonIdSeq who,
out TerminologyServices::QualifiedCodeSeq what,
out ContextSeq other,
out PolicySeq policy )
raises ( Unsubscribed, ... );
void modify_subscription (
in UID the_uid,
in PersonIdService::PersonIdSeq who,
in TerminologyServices::QualifiedCodeSeq what,
in ContextSeq other,
in PolicySeq policy )
raises ( Unsubscribed, ... );
};
interface FederatedAccess : OAComponent {
void load_observations
in ObvSeq the_observations,
in PersonIdService::DomainName domain_name,
in PersonIdService::ComponentName component_name )
raises { ... };
};
};
#endif // _OBSERVATION_ACCESS_IDL_
----------------
Broadcast message to hrac-rfp from "V. Juggy Jagannathan" <juggy@careflow.com>.
Go to http://cadse.cs.fiu.edu/omg/hrac-rfp to browse the mail list archive.
- References:
- Issues
- From: Carol Burt <cburt@2ab.com>