import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs'; import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs'; import { PatientDelegateOptions } from '../crypto/entities/PatientDelegateOptions.mjs'; import { PatientShareOptions } from '../crypto/entities/PatientShareOptions.mjs'; import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs'; import { GroupScoped } from '../model/GroupScoped.mjs'; import { DecryptedPatient, EncryptedPatient, Patient } from '../model/Patient.mjs'; import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs'; import { User } from '../model/User.mjs'; import { AccessLevel } from '../model/embed/AccessLevel.mjs'; import { HexString } from '../model/specializations/HexString.mjs'; import { ArrayWithUniqueKeys } from '../utils/ArrayWithUniqueKeys.mjs'; import { PatientFlavouredInGroupApi } from './PatientFlavouredInGroupApi.mjs'; export interface PatientInGroupApi { encrypted: PatientFlavouredInGroupApi; tryAndRecover: PatientFlavouredInGroupApi; /** * * In-group version of [PatientApi.decrypt] */ decrypt(patients: Array>): Promise>>; /** * * In-group version of [PatientApi.tryDecrypt] */ tryDecrypt(patients: Array>): Promise>>; /** * * In-group version of [PatientApi.encryptOrValidate] */ encryptOrValidate(patients: Array>): Promise>>; /** * * In-group version of [PatientApi.getSecretIdsOf] */ getSecretIdsOf(patient: GroupScoped): Promise<{ [key: string]: Array; }>; /** * * In-group version of [PatientApi.getEncryptionKeysOf] */ getEncryptionKeysOf(patient: GroupScoped): Promise>; /** * * In-group version of [PatientApi.withEncryptionMetadata] */ withEncryptionMetadata(entityGroupId: string, base: DecryptedPatient | undefined, options?: { user?: User | undefined; delegates?: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; accessLevel: AccessLevel; }, 'delegate'>; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [PatientApi.withEncryptionMetadataAndDelegates] */ withEncryptionMetadataAndDelegates(entityGroupId: string, base: DecryptedPatient | undefined, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; delegateOptions: PatientDelegateOptions; }, 'delegate'>, options?: { user?: User | undefined; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [PatientApi.hasWriteAccess] */ hasWriteAccess(patient: GroupScoped): Promise; /** * * In-group version of [PatientApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [PatientApi.matchPatientsBy] */ matchPatientsBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [PatientApi.matchPatientsBySorted] */ matchPatientsBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [PatientBasicFlavourlessApi.deletePatientById] */ deletePatientById(entityId: GroupScoped): Promise>; /** * * In-group version of [PatientBasicFlavourlessApi.deletePatientsByIds] */ deletePatientsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [PatientBasicFlavourlessApi.purgePatientById] */ purgePatientById(entityId: GroupScoped): Promise; /** * * In-group version of [PatientBasicFlavourlessApi.purgePatientsByIds] */ purgePatientsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [PatientBasicFlavourlessApi.deletePatient] */ deletePatient(patient: GroupScoped): Promise>; /** * * In-group version of [PatientBasicFlavourlessApi.deletePatients] */ deletePatients(patients: Array>): Promise>>; /** * * In-group version of [PatientBasicFlavourlessApi.purgePatient] */ purgePatient(patient: GroupScoped): Promise; /** * * In-group version of [PatientBasicFlavourlessApi.getDataOwnersWithAccessTo]. */ getDataOwnersWithAccessTo(patient: GroupScoped): Promise; /** * * In-group version of [PatientFlavouredApi.shareWith] */ shareWith(delegate: EntityReferenceInGroup, patient: GroupScoped, options?: { options?: PatientShareOptions | undefined; }): Promise>; /** * * In-group version of [PatientFlavouredApi.shareWithMany] */ shareWithMany(patient: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; shareOptions: PatientShareOptions; }, 'delegate'>): Promise>; /** * * In-group version of [PatientFlavouredApi.initializeConfidentialSecretId] */ initializeConfidentialSecretId(patient: GroupScoped): Promise>; /** * * In-group version of [PatientFlavouredApi.filterPatientsBy] */ filterPatientsBy(groupId: string, filter: FilterOptions): Promise>>; /** * * In-group version of [PatientFlavouredApi.filterPatientsBySorted] */ filterPatientsBySorted(groupId: string, filter: SortableFilterOptions): Promise>>; /** * * In-group version of [PatientBasicFlavouredApi.createPatient] */ createPatient(patient: GroupScoped): Promise>; /** * * In-group version of [PatientBasicFlavouredApi.createPatients] */ createPatients(patients: Array>): Promise>>; /** * * In-group version of [PatientBasicFlavouredApi.undeletePatient] */ undeletePatient(patient: GroupScoped): Promise>; /** * * In-group version of [PatientBasicFlavouredApi.undeletePatients] */ undeletePatients(patients: Array>): Promise>>; /** * * In-group version of [PatientBasicFlavouredApi.modifyPatient] */ modifyPatient(entity: GroupScoped): Promise>; /** * * In-group version of [PatientBasicFlavouredApi.undeletePatientById] */ undeletePatientById(patientId: GroupScoped): Promise>; /** * * In-group version of [PatientBasicFlavouredApi.undeletePatientsByIds] */ undeletePatientsByIds(patientIds: Array>): Promise>>; /** * * In-group version of [PatientBasicFlavouredApi.getPatient] */ getPatient(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [PatientBasicFlavouredApi.getPatientResolvingMerges] */ getPatientResolvingMerges(groupId: string, patientId: string, maxMergeDepth: number | undefined): Promise>; /** * * In-group version of [PatientBasicFlavouredApi.getPatients] */ getPatients(groupId: string, patientIds: Array): Promise>>; /** * * In-group version of [PatientBasicFlavouredApi.modifyPatients] */ modifyPatients(patients: Array>): Promise>>; }