信息架构/菜单框架大重构-20260109
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { apiGet, apiPost, apiPatch } from "./axios";
|
||||
import { apiDelete, apiGet, apiPatch, apiPost } from "./axios";
|
||||
import type { ApiListResponse } from "../types/api";
|
||||
|
||||
export const fetchAes = (studyId: string, params?: Record<string, any>) =>
|
||||
@@ -9,3 +9,6 @@ export const createAe = (studyId: string, payload: Record<string, any>) =>
|
||||
|
||||
export const updateAe = (studyId: string, aeId: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/aes/${aeId}`, payload);
|
||||
|
||||
export const deleteAe = (studyId: string, aeId: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/aes/${aeId}`);
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
import { apiGet, apiPost, apiDelete } from "./axios";
|
||||
|
||||
export const fetchComments = (studyId: string, entityType: string, entityId: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/${entityType}/${entityId}/comments`);
|
||||
|
||||
export const createComment = (
|
||||
studyId: string,
|
||||
entityType: string,
|
||||
entityId: string,
|
||||
payload: Record<string, any>
|
||||
) => apiPost(`/api/v1/studies/${studyId}/${entityType}/${entityId}/comments`, payload);
|
||||
|
||||
export const deleteComment = (studyId: string, entityType: string, entityId: string, commentId: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/${entityType}/${entityId}/comments/${commentId}`);
|
||||
@@ -9,6 +9,3 @@ export const fetchFinanceSummary = (studyId: string) =>
|
||||
|
||||
export const fetchOverdueAesCount = (studyId: string) =>
|
||||
apiGet<ApiListResponse<any>>(`/api/v1/studies/${studyId}/aes/`, { params: { overdue: true, limit: 1 } });
|
||||
|
||||
export const fetchOverdueQueriesCount = (studyId: string) =>
|
||||
apiGet<ApiListResponse<any>>(`/api/v1/studies/${studyId}/data-queries/`, { params: { overdue: true, limit: 1 } });
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
import { apiGet, apiPost, apiPatch } from "./axios";
|
||||
import type { ApiListResponse } from "../types/api";
|
||||
|
||||
export const fetchDataQueries = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet<ApiListResponse<any>>(`/api/v1/studies/${studyId}/data-queries/`, { params });
|
||||
|
||||
export const createDataQuery = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/data-queries/`, payload);
|
||||
|
||||
export const updateDataQuery = (studyId: string, queryId: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/data-queries/${queryId}`, payload);
|
||||
@@ -0,0 +1,16 @@
|
||||
import { apiDelete, apiGet, apiPatch, apiPost } from "./axios";
|
||||
|
||||
export const listDrugShipments = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/drug/shipments`, { params });
|
||||
|
||||
export const getDrugShipment = (studyId: string, shipmentId: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/drug/shipments/${shipmentId}`);
|
||||
|
||||
export const createDrugShipment = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/drug/shipments`, payload);
|
||||
|
||||
export const updateDrugShipment = (studyId: string, shipmentId: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/drug/shipments/${shipmentId}`, payload);
|
||||
|
||||
export const deleteDrugShipment = (studyId: string, shipmentId: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/drug/shipments/${shipmentId}`);
|
||||
@@ -1,64 +0,0 @@
|
||||
import { apiGet, apiPatch, apiPost } from "./axios";
|
||||
import type { AxiosResponse } from "axios";
|
||||
import type { ApiListResponse } from "../types/api";
|
||||
|
||||
export interface FinanceItem {
|
||||
id: string;
|
||||
study_id: string;
|
||||
site_id?: string | null;
|
||||
subject_id?: string | null;
|
||||
visit_id?: string | null;
|
||||
category: string;
|
||||
title: string;
|
||||
description?: string | null;
|
||||
currency: string;
|
||||
amount: number | string;
|
||||
occur_date: string;
|
||||
status: string;
|
||||
submitted_at?: string | null;
|
||||
approved_at?: string | null;
|
||||
rejected_at?: string | null;
|
||||
paid_at?: string | null;
|
||||
approver_id?: string | null;
|
||||
payer_id?: string | null;
|
||||
reject_reason?: string | null;
|
||||
created_by: string;
|
||||
created_at: string;
|
||||
updated_at?: string | null;
|
||||
}
|
||||
|
||||
export interface FinanceSummary {
|
||||
total_amount: number | string;
|
||||
approved_amount: number | string;
|
||||
paid_amount: number | string;
|
||||
submitted_amount?: number | string;
|
||||
count_total: number;
|
||||
count_paid: number;
|
||||
}
|
||||
|
||||
export const fetchFinanceItems = (
|
||||
studyId: string,
|
||||
params?: Record<string, any>
|
||||
): Promise<AxiosResponse<ApiListResponse<FinanceItem>>> =>
|
||||
apiGet(`/api/v1/studies/${studyId}/finance/items/`, { params });
|
||||
|
||||
export const fetchFinanceItem = (studyId: string, itemId: string) =>
|
||||
apiGet<FinanceItem>(`/api/v1/studies/${studyId}/finance/items/${itemId}`);
|
||||
|
||||
export const createFinanceItem = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost<FinanceItem>(`/api/v1/studies/${studyId}/finance/items`, payload);
|
||||
|
||||
export const updateFinanceItem = (studyId: string, itemId: string, payload: Record<string, any>) =>
|
||||
apiPatch<FinanceItem>(`/api/v1/studies/${studyId}/finance/items/${itemId}`, payload);
|
||||
|
||||
export const changeFinanceStatus = (
|
||||
studyId: string,
|
||||
itemId: string,
|
||||
payload: { status: string; reject_reason?: string }
|
||||
) => apiPost<FinanceItem>(`/api/v1/studies/${studyId}/finance/items/${itemId}/status`, payload);
|
||||
|
||||
export const fetchFinanceSummary = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet<FinanceSummary | ApiListResponse<FinanceSummary>>(
|
||||
`/api/v1/studies/${studyId}/finance/summary`,
|
||||
{ params }
|
||||
);
|
||||
@@ -0,0 +1,16 @@
|
||||
import { apiDelete, apiGet, apiPatch, apiPost } from "./axios";
|
||||
|
||||
export const listFinanceContracts = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/finance/contracts`, { params });
|
||||
|
||||
export const getFinanceContract = (studyId: string, contractId: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/finance/contracts/${contractId}`);
|
||||
|
||||
export const createFinanceContract = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/finance/contracts`, payload);
|
||||
|
||||
export const updateFinanceContract = (studyId: string, contractId: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/finance/contracts/${contractId}`, payload);
|
||||
|
||||
export const deleteFinanceContract = (studyId: string, contractId: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/finance/contracts/${contractId}`);
|
||||
@@ -0,0 +1,16 @@
|
||||
import { apiDelete, apiGet, apiPatch, apiPost } from "./axios";
|
||||
|
||||
export const listFinanceSpecials = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/finance/specials`, { params });
|
||||
|
||||
export const getFinanceSpecial = (studyId: string, specialId: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/finance/specials/${specialId}`);
|
||||
|
||||
export const createFinanceSpecial = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/finance/specials`, payload);
|
||||
|
||||
export const updateFinanceSpecial = (studyId: string, specialId: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/finance/specials/${specialId}`, payload);
|
||||
|
||||
export const deleteFinanceSpecial = (studyId: string, specialId: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/finance/specials/${specialId}`);
|
||||
@@ -1,34 +0,0 @@
|
||||
import { apiGet, apiPatch, apiPost } from "./axios";
|
||||
import type { AxiosResponse } from "axios";
|
||||
import type { ApiListResponse } from "../types/api";
|
||||
|
||||
export interface ImpBatch {
|
||||
id: string;
|
||||
study_id: string;
|
||||
product_id: string;
|
||||
batch_no: string;
|
||||
expiry_date?: string | null;
|
||||
manufacture_date?: string | null;
|
||||
status: string;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
export const fetchImpBatches = (
|
||||
studyId: string,
|
||||
params?: Record<string, any>
|
||||
): Promise<AxiosResponse<ApiListResponse<ImpBatch>>> =>
|
||||
apiGet(`/api/v1/studies/${studyId}/imp/batches/`, { params });
|
||||
|
||||
export const createImpBatch = (
|
||||
studyId: string,
|
||||
payload: Record<string, any>
|
||||
): Promise<AxiosResponse<ImpBatch>> =>
|
||||
apiPost(`/api/v1/studies/${studyId}/imp/batches/`, payload);
|
||||
|
||||
export const updateImpBatch = (
|
||||
studyId: string,
|
||||
batchId: string,
|
||||
payload: Record<string, any>
|
||||
): Promise<AxiosResponse<ImpBatch>> =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/imp/batches/${batchId}`, payload);
|
||||
@@ -1,16 +0,0 @@
|
||||
import { apiGet } from "./axios";
|
||||
import type { AxiosResponse } from "axios";
|
||||
import type { ApiListResponse } from "../types/api";
|
||||
|
||||
export interface ImpInventoryRow {
|
||||
site_id: string;
|
||||
batch_id: string;
|
||||
quantity_on_hand: number;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
export const fetchImpInventory = (
|
||||
studyId: string,
|
||||
params?: Record<string, any>
|
||||
): Promise<AxiosResponse<ApiListResponse<ImpInventoryRow>>> =>
|
||||
apiGet(`/api/v1/studies/${studyId}/imp/inventory/`, { params });
|
||||
@@ -1,34 +0,0 @@
|
||||
import { apiGet, apiPatch, apiPost } from "./axios";
|
||||
import type { AxiosResponse } from "axios";
|
||||
import type { ApiListResponse } from "../types/api";
|
||||
|
||||
export interface ImpProduct {
|
||||
id: string;
|
||||
study_id: string;
|
||||
name: string;
|
||||
form?: string | null;
|
||||
strength?: string | null;
|
||||
unit: string;
|
||||
description?: string | null;
|
||||
is_active: boolean;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
export const fetchImpProducts = (
|
||||
studyId: string
|
||||
): Promise<AxiosResponse<ApiListResponse<ImpProduct>>> =>
|
||||
apiGet(`/api/v1/studies/${studyId}/imp/products/`);
|
||||
|
||||
export const createImpProduct = (
|
||||
studyId: string,
|
||||
payload: Record<string, any>
|
||||
): Promise<AxiosResponse<ImpProduct>> =>
|
||||
apiPost(`/api/v1/studies/${studyId}/imp/products/`, payload);
|
||||
|
||||
export const updateImpProduct = (
|
||||
studyId: string,
|
||||
productId: string,
|
||||
payload: Record<string, any>
|
||||
): Promise<AxiosResponse<ImpProduct>> =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/imp/products/${productId}`, payload);
|
||||
@@ -1,30 +0,0 @@
|
||||
import { apiGet, apiPost } from "./axios";
|
||||
import type { AxiosResponse } from "axios";
|
||||
import type { ApiListResponse } from "../types/api";
|
||||
|
||||
export interface ImpTransaction {
|
||||
id: string;
|
||||
study_id: string;
|
||||
site_id: string;
|
||||
batch_id: string;
|
||||
subject_id?: string | null;
|
||||
tx_type: string;
|
||||
quantity: number;
|
||||
tx_date: string;
|
||||
reference?: string | null;
|
||||
notes?: string | null;
|
||||
created_by: string;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
export const fetchImpTransactions = (
|
||||
studyId: string,
|
||||
params?: Record<string, any>
|
||||
): Promise<AxiosResponse<ApiListResponse<ImpTransaction>>> =>
|
||||
apiGet(`/api/v1/studies/${studyId}/imp/transactions/`, { params });
|
||||
|
||||
export const createImpTransaction = (
|
||||
studyId: string,
|
||||
payload: Record<string, any>
|
||||
): Promise<AxiosResponse<ImpTransaction>> =>
|
||||
apiPost(`/api/v1/studies/${studyId}/imp/transactions/`, payload);
|
||||
@@ -1,11 +0,0 @@
|
||||
import { apiGet, apiPost, apiPatch } from "./axios";
|
||||
import type { ApiListResponse } from "../types/api";
|
||||
|
||||
export const fetchIssues = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet<ApiListResponse<any>>(`/api/v1/studies/${studyId}/issues/`, { params });
|
||||
|
||||
export const createIssue = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/issues/`, payload);
|
||||
|
||||
export const updateIssue = (studyId: string, issueId: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/issues/${issueId}`, payload);
|
||||
@@ -0,0 +1,16 @@
|
||||
import { apiDelete, apiGet, apiPatch, apiPost } from "./axios";
|
||||
|
||||
export const listKnowledgeNotes = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/knowledge/notes`, { params });
|
||||
|
||||
export const getKnowledgeNote = (studyId: string, noteId: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/knowledge/notes/${noteId}`);
|
||||
|
||||
export const createKnowledgeNote = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/knowledge/notes`, payload);
|
||||
|
||||
export const updateKnowledgeNote = (studyId: string, noteId: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/knowledge/notes/${noteId}`, payload);
|
||||
|
||||
export const deleteKnowledgeNote = (studyId: string, noteId: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/knowledge/notes/${noteId}`);
|
||||
@@ -1,14 +0,0 @@
|
||||
import { apiGet, apiPost, apiPatch, apiDelete } from "./axios";
|
||||
import type { ApiListResponse } from "../types/api";
|
||||
|
||||
export const fetchMilestones = (studyId: string) =>
|
||||
apiGet<ApiListResponse<any>>(`/api/v1/studies/${studyId}/milestones/`);
|
||||
|
||||
export const createMilestone = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/milestones/`, payload);
|
||||
|
||||
export const updateMilestone = (studyId: string, milestoneId: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/milestones/${milestoneId}`, payload);
|
||||
|
||||
export const deleteMilestone = (studyId: string, milestoneId: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/milestones/${milestoneId}`);
|
||||
@@ -0,0 +1,61 @@
|
||||
import { apiDelete, apiGet, apiPatch, apiPost } from "./axios";
|
||||
|
||||
export const listFeasibility = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/startup/feasibility`, { params });
|
||||
|
||||
export const getFeasibility = (studyId: string, id: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/startup/feasibility/${id}`);
|
||||
|
||||
export const createFeasibility = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/startup/feasibility`, payload);
|
||||
|
||||
export const updateFeasibility = (studyId: string, id: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/startup/feasibility/${id}`, payload);
|
||||
|
||||
export const deleteFeasibility = (studyId: string, id: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/startup/feasibility/${id}`);
|
||||
|
||||
export const listEthics = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/startup/ethics`, { params });
|
||||
|
||||
export const getEthics = (studyId: string, id: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/startup/ethics/${id}`);
|
||||
|
||||
export const createEthics = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/startup/ethics`, payload);
|
||||
|
||||
export const updateEthics = (studyId: string, id: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/startup/ethics/${id}`, payload);
|
||||
|
||||
export const deleteEthics = (studyId: string, id: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/startup/ethics/${id}`);
|
||||
|
||||
export const listKickoffs = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/startup/kickoff`, { params });
|
||||
|
||||
export const getKickoff = (studyId: string, id: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/startup/kickoff/${id}`);
|
||||
|
||||
export const createKickoff = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/startup/kickoff`, payload);
|
||||
|
||||
export const updateKickoff = (studyId: string, id: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/startup/kickoff/${id}`, payload);
|
||||
|
||||
export const deleteKickoff = (studyId: string, id: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/startup/kickoff/${id}`);
|
||||
|
||||
export const listTrainingAuthorizations = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/startup/training-authorizations`, { params });
|
||||
|
||||
export const getTrainingAuthorization = (studyId: string, id: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/startup/training-authorizations/${id}`);
|
||||
|
||||
export const createTrainingAuthorization = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/startup/training-authorizations`, payload);
|
||||
|
||||
export const updateTrainingAuthorization = (studyId: string, id: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/startup/training-authorizations/${id}`, payload);
|
||||
|
||||
export const deleteTrainingAuthorization = (studyId: string, id: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/startup/training-authorizations/${id}`);
|
||||
@@ -0,0 +1,20 @@
|
||||
import { apiDelete, apiGet, apiPatch, apiPost } from "./axios";
|
||||
|
||||
export const listSubjectHistories = (studyId: string, subjectId: string, params?: Record<string, any>) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/subjects/${subjectId}/histories`, { params });
|
||||
|
||||
export const getSubjectHistory = (studyId: string, subjectId: string, historyId: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/subjects/${subjectId}/histories/${historyId}`);
|
||||
|
||||
export const createSubjectHistory = (studyId: string, subjectId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/subjects/${subjectId}/histories`, payload);
|
||||
|
||||
export const updateSubjectHistory = (
|
||||
studyId: string,
|
||||
subjectId: string,
|
||||
historyId: string,
|
||||
payload: Record<string, any>
|
||||
) => apiPatch(`/api/v1/studies/${studyId}/subjects/${subjectId}/histories/${historyId}`, payload);
|
||||
|
||||
export const deleteSubjectHistory = (studyId: string, subjectId: string, historyId: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/subjects/${subjectId}/histories/${historyId}`);
|
||||
@@ -1,4 +1,4 @@
|
||||
import { apiGet, apiPost, apiPatch } from "./axios";
|
||||
import { apiDelete, apiGet, apiPatch, apiPost } from "./axios";
|
||||
import type { ApiListResponse } from "../types/api";
|
||||
|
||||
export const fetchSubjects = (studyId: string, params?: Record<string, any>) =>
|
||||
@@ -7,5 +7,11 @@ export const fetchSubjects = (studyId: string, params?: Record<string, any>) =>
|
||||
export const createSubject = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/subjects/`, payload);
|
||||
|
||||
export const getSubject = (studyId: string, subjectId: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/subjects/${subjectId}`);
|
||||
|
||||
export const updateSubject = (studyId: string, subjectId: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/subjects/${subjectId}`, payload);
|
||||
|
||||
export const deleteSubject = (studyId: string, subjectId: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/subjects/${subjectId}`);
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import { apiGet, apiPost } from "./axios";
|
||||
|
||||
export const fetchVerifications = (studyId: string, params?: Record<string, any>) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/verifications/`, { params });
|
||||
|
||||
export const upsertVerification = (studyId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/verifications/`, payload);
|
||||
|
||||
export const fetchVerification = (studyId: string, subjectId: string, level: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/verifications/subjects/${subjectId}/${level}`);
|
||||
@@ -1,7 +1,13 @@
|
||||
import { apiGet, apiPatch } from "./axios";
|
||||
import { apiDelete, apiGet, apiPatch, apiPost } from "./axios";
|
||||
|
||||
export const fetchVisits = (studyId: string, subjectId: string) =>
|
||||
apiGet(`/api/v1/studies/${studyId}/subjects/${subjectId}/visits/`);
|
||||
|
||||
export const createVisit = (studyId: string, subjectId: string, payload: Record<string, any>) =>
|
||||
apiPost(`/api/v1/studies/${studyId}/subjects/${subjectId}/visits/`, payload);
|
||||
|
||||
export const updateVisit = (studyId: string, subjectId: string, visitId: string, payload: Record<string, any>) =>
|
||||
apiPatch(`/api/v1/studies/${studyId}/subjects/${subjectId}/visits/${visitId}`, payload);
|
||||
|
||||
export const deleteVisit = (studyId: string, subjectId: string, visitId: string) =>
|
||||
apiDelete(`/api/v1/studies/${studyId}/subjects/${subjectId}/visits/${visitId}`);
|
||||
|
||||
Reference in New Issue
Block a user