import { CodeStub } from "./CodeStub"; import { SecurityMetadata } from "./SecurityMetadata"; import { Delegation } from "./Delegation"; export declare class Topic { constructor(json: JSON | any); /** * The id of the topic. We encourage using either a v4 UUID or a HL7 Id. */ id?: string; /** * The revision of the topic in the database, used for conflict management / optimistic locking. */ rev?: string; /** * The timestamp (unix epoch in ms) of creation of this entity, will be filled automatically if missing. Not enforced by the application server. */ created?: number; /** * The timestamp (unix epoch in ms) of the latest modification of this entity, will be filled automatically if missing. Not enforced by the application server. */ modified?: number; /** * Name/basic description of the topic */ description?: string; /** * A tag is an item from a codification system that qualifies an entity as being member of a certain class, whatever the value it might have taken. If the tag qualifies the content of a field, it means that whatever the content of the field, the tag will always apply. For example, the label of a field is qualified using a tag. LOINC is a codification system typically used for tags. */ tags?: Array; /** * A code is an item from a codification system that qualifies the content of this entity. SNOMED-CT, ICPC-2 or ICD-10 codifications systems can be used for codes */ codes?: Array; /** * The id of the User that has created this entity, will be filled automatically if missing. Not enforced by the application server. */ author?: string; /** * The id of the HealthcareParty that is responsible for this entity, will be filled automatically if missing. Not enforced by the application server. */ responsible?: string; /** * The id of the medical location where this entity was created. */ medicalLocationId?: string; /** * Soft delete (unix epoch in ms) timestamp of the object. */ endOfLife?: number; /** * hard delete (unix epoch in ms) timestamp of the object. Filled automatically when deletePatient is called. */ deletionDate?: number; /** * List of participants to the topic and their role in the topic {@link TopicRole} * * This should not be used directly, in the future the format may change. Make sure to only edit this through methods of {@link IccTopicXApi}. */ activeParticipants?: { [key: string]: TopicRole; }; linkedServices?: string[]; linkedHealthElements?: string[]; securityMetadata?: SecurityMetadata; /** * The secretForeignKeys are filled at the to many end of a one to many relationship (for example inside Contact for the Patient -> Contacts relationship). Used when we want to find all contacts for a specific patient. These keys are in clear. You can have several to partition the medical document space. */ secretForeignKeys?: Array; /** * The secretForeignKeys are filled at the to many end of a one to many relationship (for example inside Contact for the Patient -> Contacts relationship). Used when we want to find the patient for a specific contact. These keys are the encrypted id (using the hcParty key for the delegate) that can be found in clear inside the patient. ids encrypted using the hcParty keys. */ cryptedForeignKeys?: { [key: string]: Array; }; /** * When a document is created, the responsible generates a cryptographically random master key (never to be used for something else than referencing from other entities). He/she encrypts it using his own AES exchange key and stores it as a delegation. The responsible is thus always in the delegations as well */ delegations?: { [key: string]: Array; }; /** * When a document needs to be encrypted, the responsible generates a cryptographically random master key (different from the delegation key, never to appear in clear anywhere in the db. He/she encrypts it using his own AES exchange key and stores it as a delegation */ encryptionKeys?: { [key: string]: Array; }; /** * The base64 encoded data of this object, formatted as JSON and encrypted in AES using the random master key from encryptionKeys. */ encryptedSelf?: string; } export declare enum TopicRole { PARTICIPANT = "PARTICIPANT", ADMIN = "ADMIN", OWNER = "OWNER" }