emr-api-client
Version:
Api client for accessing openmrs service
937 lines (923 loc) • 29.2 kB
TypeScript
declare enum ClientError {
INVALID_API_VERSION = "Invalid API version",
NOT_FOUND = "Request not found",
ENTITY_ERROR = "Entity error",
BAD_REQUEST = "Bad request",
REQUEST_FAILED = "Request Failed",
NO_CONNECTION = "No connection",
SERVER_ERROR = "Server Error",
INTERNAL_ERROR = "Internal error",
GENERAL_ERROR = "General Error",
GENERAL_REQUEST_ERROR = "General request error",
AUTHENTICATION_ERROR = "Authentication Error",
GATE_WAY_ERROR = "Gate way error",
RECORD_CONFLICT = "Record conflict"
}
type IdentificationTypeName = 'OpenMRS Identification Number' | 'Old Identification Number' | 'National id' | 'ARV Number' | 'z_deprecated Pre ART Number (Old format)' | 'VHW ID' | 'District TB Number' | 'Dummy ID' | 'z_deprecated EID Number' | 'Unknown ID' | 'MDR-TB Program Identifier' | 'KS Number' | 'z_deprecated PART Number' | 'Diabetes Number' | 'LAB IDENTIFIER' | 'DS Number' | 'Filing number' | 'Archived filing number' | 'HCC Number' | 'Radiology Study Number' | 'IVR Access Code' | 'Pre-ART Number' | 'Serial Number' | 'HTC Identifier' | 'ANC Connect ID' | 'FUCHIA ID' | 'DDE person document ID' | 'Malawi National ID' | 'District IPT Number' | 'Legacy ARV Number';
type UserRoleName = 'Anonymous' | 'Provider' | 'System Developer' | 'Accompagnateur' | 'Accompagnateur Leader' | 'Adults' | 'Clinician' | 'Counselor' | 'Data Assistant' | 'Data Element Contributor' | 'Data Manager' | 'Doctor' | 'General Registration Clerk' | 'HMIS lab order' | 'HSA' | 'Informatics Manager' | 'Lab' | 'Medical Assistant' | 'Nurse' | 'Paediatrics' | 'Pharmacist' | 'Program Manager' | 'Registration Clerk' | 'Social Worker' | 'SPINE clinician' | 'Superuser' | '"Superuser,Superuser,"' | 'Supervisor' | 'Therapeutic Feeding Clerk' | 'Vitals Clerk' | 'Authenticated';
interface UpdatedUserI {
given_name?: string;
family_name?: string;
password?: string;
roles?: UserRoleName[];
programs?: number[];
must_append_roles?: boolean;
}
interface NewUserI {
given_name: string;
family_name: string;
roles: UserRoleName[];
username: string;
password: string;
programs?: number[];
}
interface RequestDataI {
url: string;
config: Record<string, any>;
}
interface UserI {
deactivated_on: string | null;
user_id: number;
creator: number;
person_id: number;
changed_by: number;
date_changed: string;
system_id: string;
username: string;
date_created: string;
retired: number;
retired_by: number | null;
date_retired: string | null;
retire_reason: string;
uuid: string;
roles: RoleI[];
programs: any[];
person: PersonI;
}
interface RoleI {
role: string;
description: string;
uuid: string;
}
interface PersonAddressI {
person_address_id: number;
person_id: number;
preferred: number;
address1: null | string;
address2: string;
city_village: string;
state_province: string;
postal_code: null | string;
country: null | string;
latitude: null | string;
longitude: null | string;
creator: number;
date_created: string;
voided: number;
voided_by: null | number;
date_voided: null | string;
void_reason: null | string;
county_district: string;
neighborhood_cell: string;
region: null | string;
subregion: null | string;
township_division: string;
uuid: string;
}
interface PersonI {
person_id: number;
gender: string;
birthdate: string | null;
birthdate_estimated: number;
dead: number;
death_date: string | null;
cause_of_death: string | null;
creator: number;
date_created: string;
changed_by: number;
date_changed: string;
voided: number;
voided_by: number | null;
date_voided: string | null;
void_reason: string | null;
uuid: string;
names: PersonNameI[];
person_attributes: PersonAttributeI[];
addresses: PersonAddressI[];
}
interface PersonNameI {
person_name_id: number;
preferred: number;
person_id: number;
prefix: string | null;
given_name: string;
middle_name: string;
family_name_prefix: string | null;
family_name: string;
family_name2: string | null;
family_name_suffix: string | null;
degree: string | null;
creator: number;
date_created: string;
voided: number;
voided_by: number | null;
date_voided: string | null;
void_reason: string | null;
changed_by: number | null;
date_changed: string | null;
uuid: string;
}
interface RequestBodyI {
method: 'GET' | 'POST' | 'PUT' | 'DELETE';
body?: string;
}
interface AuthorizationDataI {
token: string;
expiry_time: string;
user: UserI;
}
interface DDESearchDemographicsI {
given_name: string;
family_name: string;
gender: string;
}
interface DDESearchByDemographicsResponse {
locals: PatientI[];
remotes: PatientI[];
}
interface DDEclientMergeDataI {
patient_id: number;
doc_id: string;
}
/**
* Data that is saved in session storage for persitence
*/
interface ApiDataI {
host: string;
token: string;
tokenExpiryDate: string;
userID: string;
personID: string;
username: string;
userRoles: string;
}
/**
* When making API calls, this object will be returns
*/
interface JsonRequestResponse<T = any> {
/**
* For successful API connections, ok will be true
*/
ok: boolean;
/**s
* Retrieve client error type. Useful for handling specific errors
*/
clientErrorType?: ClientError;
/**
* Generated error message
*/
errorMessage?: string;
/**
* Response as returned by fetch request
*/
httpStatusResponse?: number;
/**
* Any data returned by the API
*/
data?: T;
}
interface ObsValueI {
concept_id: number;
value_text?: string;
value_coded?: number;
value_datetime?: string;
value_modifier?: string | null;
value_boolean?: string;
value_numeric?: number;
obs_group_id?: number;
obs_datetime?: string;
}
interface NewObsI {
encounter_id: number;
observations: Array<ObsValueI>;
}
interface NewPatientI {
given_name?: string;
family_name?: string;
gender?: string;
birth_date?: string;
home_district?: number;
birthdate_estimated?: boolean;
home_traditional_authority?: number;
home_village?: number;
current_district?: number;
current_village?: number;
current_traditional_authority?: number;
cell_phone_number?: string;
landmark?: string;
}
interface NewPersonAttributeI {
person_id: number;
person_attribute_type_id: number;
value: number | string;
}
interface PersonAttributeTypeI {
person_attribute_type_id: number;
name: string;
description: string;
format: string;
foreign_key: null;
searchable: number;
creator: number;
date_created: Date;
changed_by: number;
date_changed: Date;
retired: number;
retired_by: null;
date_retired: null;
retire_reason: null;
edit_privilege: null;
uuid: string;
sort_weight: number;
}
interface PersonAttributeI {
person_attribute_id?: number;
person_id: number;
value: string;
person_attribute_type_id: number;
creator?: number;
date_created?: Date;
changed_by?: null;
date_changed?: null;
voided?: number;
voided_by?: null;
date_voided?: null;
void_reason?: null;
uuid?: string;
type?: PersonAttributeTypeI;
}
interface NewPersonI {
given_name: string;
family_name: string;
middle_name?: string;
gender: string;
birthdate: string;
birthdate_estimated: boolean;
home_district: string;
home_traditional_authority: string;
home_village: string;
current_district: string;
current_traditional_authority: string;
current_village: string;
landmark: string;
cell_phone_number: string;
occupation: string;
}
interface ModifyPersonI {
program_id?: number;
given_name?: string;
family_name?: string;
gender?: string;
birthdate?: string;
birthdate_estimated?: boolean;
home_district?: string;
home_traditional_authority?: string;
home_village?: string;
current_district?: string;
current_traditional_authority?: string;
current_village?: string;
landmark?: string;
cell_phone_number?: string;
occupation?: string;
}
interface NewStateI {
state: number;
date: string;
}
interface NewTestsI {
concept_id: number;
}
interface NewOrderI {
accession_number: string;
encounter_id: number;
tests: NewTestsI[];
reason_for_test_id: string;
target_lab: string;
date: string;
requesting_clinician: string;
specimen?: {
concept_id: number;
};
}
interface NewLabOrderI {
encounter_id: number;
order: NewOrderI[];
}
interface DrugI {
drug_inventory_id: number;
dose: number;
drug?: any;
dosage_struct?: any;
order?: any;
equivalent_daily_dose: number;
frequency: string;
start_date: string;
auto_expire_date: string;
instructions: string;
units: string;
quantity?: number;
}
interface PatientI {
patient_id: number;
tribe: string | null;
creator: string;
date_created: string;
changed_by: number;
date_changed: string;
voided: number;
voided_by: string | null;
date_voided: string | null;
void_reason: string | null;
merge_history: any[];
tpt_status: {
tpt: string | null;
completed: boolean;
tb_treatment: boolean;
tpt_init_date: string | null;
tpt_complete_date: string | null;
tpt_end_date: string | null;
};
art_start_date: string;
person: PersonI;
patient_identifiers: PatientIdentifierI[];
}
interface PatientIdentifierI {
patient_identifier_id: number;
patient_id: number;
identifier: string;
identifier_type: number;
preferred: number;
location_id: number;
creator: number;
date_created: string;
voided: number;
voided_by: number | null;
date_voided: string | null;
void_reason: string | null;
uuid: string;
}
interface DemographicSearchParamsI {
given_name?: string;
family_name?: string;
gender?: string;
middle_name?: string;
birthdate?: string;
}
interface RelationshipTypeI {
relationship_type_id: number;
a_is_to_b: string;
b_is_to_a: string;
preferred: number;
weight: number;
description: string;
creator: number;
date_created: string;
uuid: string;
retired: boolean;
retired_by: null | number;
date_retired: null | string;
retire_reason: null | string;
}
interface RelationI {
relationship_id: number;
person_a: number;
relationship: number;
person_b: number;
creator: number;
date_created: string;
voided: number;
voided_by: null | number;
date_voided: null | string;
void_reason: null | string;
uuid: string;
type: RelationshipTypeI;
relation: PersonI;
}
interface RegionI {
region_id: number;
name: string;
creator: number;
date_created: string;
retired: boolean;
retired_by: null | number;
date_retired: null | string;
retire_reason: null | string;
}
interface DistrictI {
district_id: number;
name: string;
region_id: number;
creator: number;
date_created: string;
retired: boolean;
retired_by: null | number;
date_retired: null | string;
retire_reason: null | string;
}
interface TAI {
traditional_authority_id: number;
name: string;
district_id: number;
creator: number;
date_created: string;
retired: boolean;
retired_by: null | number;
date_retired: null | string;
retire_reason: null | string;
}
interface VillageI {
village_id: number;
name: string;
traditional_authority_id: number;
creator: number;
date_created: string;
retired: boolean;
retired_by: null | number;
date_retired: null | string;
retire_reason: null | string;
}
interface LocationI {
location_id: number;
name: string;
description: string;
address1: string;
address2: string;
city_village: string;
state_province: string;
postal_code: string;
country: string;
latitude: string;
longitude: string;
creator: number;
date_created: string;
county_district: null | string;
neighborhood_cell: null | string;
region: null | string;
subregion: null | string;
township_division: null | string;
retired: boolean;
retired_by: null | number;
date_retired: null | string;
retire_reason: null | string;
location_type_id: null | number;
parent_location: null | number;
uuid: string;
district: string;
}
interface NewDrugOrderI {
encounter_id: number;
drug_orders: DrugI[];
}
interface LoginAuthenticationResponse {
authorization: AuthorizationDataI;
}
interface UserActivationI {
message: string[];
user: UserI;
}
interface UserPropertyI {
user_id: number;
property: string;
property_value: string;
}
interface NewGlobalPropertyI {
property: string;
property_value: string;
description: null | string;
uuid: string;
}
interface ObsFiltersI {
person_id?: number;
concept_id?: number;
encounter_id?: number;
order_id?: number;
value_coded?: number;
value_datetime?: string;
value_numeric?: number;
accession_number?: number;
value_text?: string;
program_id?: number;
date?: string;
start_date?: string;
end_date?: string;
}
interface ConceptNameI {
concept_id: number;
name: string;
locale: string;
creator: number;
date_created: string;
concept_name_id: number;
voided: number;
voided_by: any;
date_voided: any;
void_reason: any;
uuid: string;
concept_name_type: string;
locale_preferred: number;
}
interface ConceptI {
concept_id: number;
retired: number;
short_name: any;
description: any;
form_text: any;
datatype_id: number;
class_id: number;
is_set: number;
creator: number;
date_created: string;
default_charge: any;
version: string;
changed_by: any;
date_changed: any;
retired_by: any;
date_retired: any;
retire_reason: any;
uuid: string;
concept_names: ConceptNameI[];
}
interface ObservationI {
obs_id: number;
person_id: number;
concept_id: number;
encounter_id: number;
order_id: any;
obs_datetime: string;
location_id: any;
obs_group_id: any;
accession_number: any;
value_group_id: any;
value_boolean: any;
value_coded: any;
value_coded_name_id: any;
value_drug: any;
value_datetime: any;
value_numeric: number;
value_modifier: any;
value_text: any;
date_started: any;
date_stopped: any;
comments: any;
creator: number;
date_created: string;
voided: number;
voided_by: any;
date_voided: any;
void_reason: any;
value_complex: any;
uuid: string;
concept: ConceptI;
children: ObservationI[];
}
interface EncounterFiltersI {
program_id?: number;
patient_id?: number;
location_id?: number;
encounter_type_id?: number;
date?: string;
page?: number;
page_size?: number;
}
interface EncounterTypeI {
encounter_type_id: number;
name: string;
description: string;
creator: number;
date_created: string;
retired: number;
retired_by: null | any;
date_retired: null | any;
retire_reason: null | any;
uuid: string;
}
interface ProgramI {
program_id: number;
concept_id: number;
creator: number;
date_created: string;
changed_by: number;
date_changed: string;
retired: number;
name: string;
description: string;
uuid: string;
}
interface NewEncounterI {
encounter_type_id: number;
patient_id: number;
program_id: number;
provider_id?: number;
encounter_datetime?: string;
}
interface EncounterI {
encounter_id: number;
encounter_type: number;
patient_id: number;
provider_id: number;
location_id: number;
form_id: null | any;
encounter_datetime: string;
creator: number;
date_created: string;
voided: number;
voided_by: null | any;
date_voided: null | any;
void_reason: null | any;
uuid: string;
changed_by: number;
date_changed: string;
program_id: number;
type: EncounterTypeI;
patient: {
patient_id: number;
tribe: null | any;
creator: number;
date_created: string;
changed_by: null | any;
date_changed: null | any;
voided: number;
voided_by: null | any;
date_voided: null | any;
void_reason: null | any;
};
location: LocationI;
provider: PersonI;
program: ProgramI;
observations: ObservationI[];
}
interface EncounterCountParamsI {
encounter_types: number[];
program_id?: number;
date?: string;
}
interface UpdateEncounterI {
type_id?: number;
patient_id?: number;
provider_id?: number;
encounter_datetime?: string;
}
interface UserFiltersI {
page_size?: number;
page?: number;
role?: UserRoleName;
}
interface ConceptFiltersI {
name?: string;
set?: string;
page_size?: number;
page?: number;
}
declare class export_default{
programID: number;
readonly NATIONAL_ID_TYPE = 3;
constructor(programID: number);
isDDeEnabled(): Promise<boolean>;
enableDDe(): Promise<JsonRequestResponse<NewGlobalPropertyI>>;
disableDDe(): Promise<JsonRequestResponse<NewGlobalPropertyI>>;
findByNpid(npid: string): Promise<JsonRequestResponse<unknown>>;
findByDemographics(demographics: DDESearchDemographicsI): Promise<JsonRequestResponse<DDESearchByDemographicsResponse>>;
findVoidedNpid(npid: string): Promise<JsonRequestResponse<unknown>>;
getRemainingNpids(): Promise<JsonRequestResponse<unknown>>;
reassignNpid(docID: string, patientID: number): Promise<JsonRequestResponse<unknown>>;
createNpID(npid: string, patientID: number): Promise<JsonRequestResponse<unknown>>;
getLocalAndRemoteDiffs(patientID: number): Promise<JsonRequestResponse<unknown>>;
updateLocalDiffs(diffs: any, patientID: number): Promise<JsonRequestResponse<unknown>>;
refreshDemographics(patientID: number): Promise<JsonRequestResponse<unknown>>;
importPatient(docID: string): Promise<JsonRequestResponse<PatientI>>;
mergePatients(primary: DDEclientMergeDataI, secondary: DDEclientMergeDataI): Promise<JsonRequestResponse<unknown>>;
checkPotentialDuplicates(demographics: Record<string, any>): Promise<JsonRequestResponse<unknown>>;
}
declare const _default$a: {
get(property: string): Promise<JsonRequestResponse<Record<string, string>>>;
set(property: string, propertyValue: string): Promise<JsonRequestResponse<NewGlobalPropertyI>>;
isProp(property: string): Promise<boolean>;
};
declare const _default$9: {
readonly AUTH: "_auth_";
readonly HOST: "_host_";
readonly KEEP_USER_LOGGED_IN_FLAG: "_keep_user_logged_in_";
userRoles: RoleI[];
host: string;
token: string;
username: string;
userID: number;
personID: number;
tokenExpiryDate: string;
sessionAvailable: boolean;
canPersistLogin: boolean;
interceptRequest: (req: RequestDataI) => RequestDataI;
interceptResponse: (req: RequestDataI, res: JsonRequestResponse) => JsonRequestResponse;
/**
* This will return the current logged in user's name
* @returns
*/
getUsername(): string;
/**
* Get the logged in user's person id
* @returns
*/
getProviderID(): number;
/**
* Returns userID of currently logged in user
* @returns
*/
getUserID(): number;
/**
* Returns URL of API host
* @returns
*/
getHost(): string;
/**
* Configure API host URL i.e. http://localhost:3000 or https://emr.malawi.com
* @param host
*/
setHost(host: string): void;
/**
* Generic function for running API endpoints.
* @param relativeUrl
* @param data
* @param baseUrl
* @returns
*/
restRequest<T = any>(relativeUrl: string, data: RequestBodyI, baseUrl?: string): Promise<JsonRequestResponse<T>>;
/**
* Authentication methord that creates a temporary session on the client side after a successful login
* @param username
* @param password
* @returns
*/
login(username: string, password: string, canPersistLogin?: boolean): Promise<JsonRequestResponse<LoginAuthenticationResponse>>;
/**
* Starts a new session by saving authentication data and updating the session state.
* @param data - The authorization data containing token, expiry time, user details, and roles.
*/
startSession(data: AuthorizationDataI): void;
/**
* Verifies a password reset token by making a POST request to the API.
* If the token is valid, starts a new session with the returned authorization data.
* @param token - The reset token to verify.
* @returns A boolean indicating whether the token verification was successful.
*/
verifyResetToken(token: string): Promise<boolean>;
/**
* Clears login session information on the client side
*/
logout(): void;
/**Simple check to verify login session */
isLoggedIn(): boolean;
/**
* Validates provided roles against roles assigned to the current login user
* @param roles
* @returns
*/
userHasRoles(roles: UserRoleName[]): boolean;
/**
* Perfoms GET http requests with optional parameters
* @param url
* @param params
* @returns
*/
getJson<T>(url: string, params?: Record<string, any>): Promise<JsonRequestResponse<T>>;
/**
* Perfoms POST http requests with provided data
* @param url
* @param data
* @returns
*/
postJson<T>(url: string, data: any): Promise<JsonRequestResponse<T>>;
/**
* Perfoms PUT http requests with provided data
* @param url
* @param data
* @returns
*/
putJson<T>(url: string, data: any): Promise<JsonRequestResponse<T>>;
/**
* Perfoms DELETE http requests with provided data
* @param url
* @param data
* @returns
*/
void<T>(url: string, params?: {}): Promise<JsonRequestResponse<T>>;
/**
* Method for validating expiration status of a token
* @returns
*/
tokenHasExpired(): boolean;
/**
* Perfoms a healthcheck operation to verify if the API is up
* @returns
*/
apiOk(): Promise<boolean>;
/**
* Gets current date from the API
* @returns
*/
getDate(): Promise<unknown>;
/**
* Gets current API version
* @returns
*/
getVersion(): Promise<string | undefined>;
/**
* Caches authentication data
*/
saveState(): void;
/**
* Reads saved authentication state
*/
loadState(): void;
clearState(): void;
};
declare const _default$8: {
all(params?: UserFiltersI): Promise<JsonRequestResponse<UserI[]>>;
get(id: number): Promise<JsonRequestResponse<UserI>>;
create(user: NewUserI): Promise<JsonRequestResponse<UserI>>;
update(id: number, user: UpdatedUserI): Promise<JsonRequestResponse<UserI>>;
activate(id: number): Promise<JsonRequestResponse<UserActivationI>>;
deactivate(id: number): Promise<JsonRequestResponse<UserActivationI>>;
};
declare const _default$7: {
get(property: string): Promise<JsonRequestResponse<UserPropertyI>>;
set(property: string, propertyValue: string): Promise<JsonRequestResponse<UserPropertyI>>;
};
declare const _default$6: {
all(params?: ObsFiltersI): Promise<JsonRequestResponse<ObservationI>>;
create(encounterID: number, observations: ObsValueI[]): Promise<JsonRequestResponse<ObservationI>>;
update(id: number, params: ObsValueI): Promise<JsonRequestResponse<ObservationI>>;
void(id: number, reason: string): Promise<JsonRequestResponse<unknown>>;
};
declare const _default$5: {
getCurrentFacility(): Promise<JsonRequestResponse<LocationI>>;
getFacilities(params?: Record<string, string | number>): Promise<JsonRequestResponse<LocationI[]>>;
getFacility(locationID: number): Promise<JsonRequestResponse<LocationI>>;
getRegions(): Promise<JsonRequestResponse<RegionI[]>>;
getDistricts(regionID: number): Promise<JsonRequestResponse<DistrictI[]>>;
getTraditionalAuthorities(districtID: number, name?: string): Promise<JsonRequestResponse<TAI[]>>;
getVillages(traditionalAuthorityID: number, name?: string): Promise<JsonRequestResponse<VillageI[]>>;
createAddress(locationName: string, type: "Village" | "TA", parentLocationID: number): Promise<JsonRequestResponse<Record<"name", string>>>;
getDistrictByID(id: number): Promise<DistrictI>;
getTraditionalAuthorityById(id: number | string): Promise<TAI>;
};
declare const _default$4: {
create(personId: number, programID: number): Promise<JsonRequestResponse<PatientI>>;
searchBy(searchParams: DemographicSearchParamsI): Promise<JsonRequestResponse<PatientI[]>>;
searchByNpid(npid: string): Promise<JsonRequestResponse<PatientI[]>>;
searchByOtherID(idType: number, identifier: string): Promise<JsonRequestResponse<PatientI[]>>;
getVisitDates(patientId: number, programID: number, params?: Record<string, any>): Promise<JsonRequestResponse<string[]>>;
get(patientId: number): Promise<JsonRequestResponse<PatientI>>;
getAll(patientIds: Array<number>): Promise<JsonRequestResponse<PatientI[]>>;
void(patientId: number, reason: string): Promise<JsonRequestResponse<unknown>>;
};
declare const _default$3: {
all(): Promise<JsonRequestResponse<NewPersonI>>;
get(personId: number): Promise<JsonRequestResponse<PersonI>>;
create(person: NewPersonI): Promise<JsonRequestResponse<PersonI>>;
update(personId: number, programID: number, person: ModifyPersonI): Promise<JsonRequestResponse<PersonI>>;
getSimilarFamilyNames(name: string): Promise<JsonRequestResponse<string[]>>;
getSimilarMiddleNames(name: string): Promise<JsonRequestResponse<string[]>>;
getSimilarGivenNames(name: string): Promise<JsonRequestResponse<string[]>>;
getNames(personId: number): Promise<JsonRequestResponse<PersonNameI>>;
void(personId: number, reason: string): Promise<JsonRequestResponse<unknown>>;
};
declare const _default$2: {
createOrder(order: NewLabOrderI): Promise<JsonRequestResponse<unknown>>;
getTestTypes(): Promise<JsonRequestResponse<unknown>>;
getTestTypesBySpecimen(specimenType?: string): Promise<JsonRequestResponse<unknown>>;
getSpecimens(testName: string): Promise<JsonRequestResponse<unknown>>;
verifyAccessionNumber(accessionNumber: string): Promise<JsonRequestResponse<unknown>>;
};
declare const _default$1: {
createOrder(orders: NewDrugOrderI[]): Promise<JsonRequestResponse<unknown>>;
getDrugs(params?: Record<string, string | number>): Promise<JsonRequestResponse<unknown>>;
getOPDDrugs(params?: Record<string, string | number>): Promise<JsonRequestResponse<unknown>>;
};
declare const _default: {
all(params?: EncounterFiltersI): Promise<JsonRequestResponse<EncounterI[]>>;
get(id: number): Promise<JsonRequestResponse<EncounterI>>;
/**
Generate a report on counts of various encounters
POST /reports/encounters
Optional parameters:
all - Retrieves all encounters not just those created by current user
*/
count(params: EncounterCountParamsI): Promise<JsonRequestResponse<Record<string, {
M?: number;
F?: number;
}>>>;
create(encounter: NewEncounterI): Promise<JsonRequestResponse<EncounterI>>;
update(id: number, encounter: UpdateEncounterI): Promise<JsonRequestResponse<EncounterI>>;
void(id: number, reason: string): Promise<JsonRequestResponse<unknown>>;
};
export { _default$9 as ApiCore, ApiDataI, AuthorizationDataI, ClientError, ConceptFiltersI, ConceptI, ConceptNameI, DDESearchByDemographicsResponse, DDESearchDemographicsI, DDEclientMergeDataI, export_default as DemographicExchange, DemographicSearchParamsI, DistrictI, _default$1 as Drug, DrugI, _default as Encounter, EncounterCountParamsI, EncounterFiltersI, EncounterI, EncounterTypeI, _default$a as GlobalProperty, IdentificationTypeName, JsonRequestResponse, _default$2 as Lab, _default$5 as Location, LocationI, LoginAuthenticationResponse, ModifyPersonI, NewDrugOrderI, NewEncounterI, NewGlobalPropertyI, NewLabOrderI, NewObsI, NewOrderI, NewPatientI, NewPersonAttributeI, NewPersonI, NewStateI, NewTestsI, NewUserI, _default$6 as Obs, ObsFiltersI, ObsValueI, ObservationI, _default$4 as Patient, PatientI, PatientIdentifierI, _default$3 as Person, PersonAttributeI, PersonAttributeTypeI, PersonI, PersonNameI, ProgramI, RegionI, RelationI, RelationshipTypeI, RequestBodyI, RequestDataI, RoleI, TAI, UpdateEncounterI, UpdatedUserI, _default$8 as User, UserActivationI, UserFiltersI, UserI, _default$7 as UserProperty, UserPropertyI, UserRoleName, VillageI };