import {z} from 'zod' export type B0643DrugSearchQueryRequest = {alert_id: string}; export type CreateApiSynapseAlertDrugSearchQueryArgs = {body: B0643DrugSearchQueryRequest}; export type CreateApiSynapseAlertDrugSearchQueryOptions = {baseUrl?: string | undefined, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const b0643DrugSearchQueryNewsAlert = z.object({tag: z.array(z.unknown()).optional(), url: z.string().optional(), title: z.string().optional(), news_id: z.string().optional(), event_time_cn: z.string().optional(), event_time_en: z.string().optional(), event_type_cn: z.string().optional(), event_type_en: z.string().optional()}); export const b0643DrugSearchQueryPaperAlert = z.object({url: z.string().optional(), title: z.string().optional(), journal: z.string().optional(), paper_id: z.string().optional(), event_time_cn: z.string().optional(), event_time_en: z.string().optional(), event_type_cn: z.string().optional(), event_type_en: z.string().optional()}); export const b0643DrugSearchQueryPatentAlert = z.object({pn: z.string().optional(), title_cn: z.string().optional(), title_en: z.string().optional(), patent_id: z.string().optional(), event_time_cn: z.string().optional(), event_time_en: z.string().optional(), event_type_cn: z.string().optional(), event_type_en: z.string().optional(), expire_date_cn: z.string().optional(), expire_date_en: z.string().optional()}); export const b0643DrugSearchQueryDrugDealAlert = z.object({url: z.string().optional(), deal_id: z.string().optional(), deal_title: z.string().optional(), deal_value_cn: z.string().optional(), deal_value_en: z.string().optional(), event_type_cn: z.string().optional(), event_type_en: z.string().optional(), upfront_payment_cn: z.string().optional(), upfront_payment_en: z.string().optional(), milestone_payment_cn: z.string().optional(), milestone_payment_en: z.string().optional()}); export const b0643DrugSearchQueryDrugEntity = z.object({drug_id: z.string().optional(), display_name_cn: z.string().optional(), display_name_en: z.string().optional()}); export const b0643DrugSearchQueryDrugTypeEntity = z.object({dict_id: z.string().optional(), display_name_cn: z.string().optional(), display_name_en: z.string().optional()}); export const b0643DrugSearchQueryTargetEntity = z.object({target_id: z.string().optional(), display_name_cn: z.string().optional(), display_name_en: z.string().optional()}); export const b0643DrugSearchQueryDevStatusEntity = z.object({dict_id: z.string().optional(), display_name_cn: z.string().optional(), display_name_en: z.string().optional()}); export const b0643DrugSearchQueryOrganizationEntity = z.object({entity_id: z.string().optional(), display_name_cn: z.string().optional(), display_name_en: z.string().optional()}); export const b0643DrugSearchQueryDrugAlert = z.object({drug_id: z.string().optional(), drug_type: z.array(z.unknown()).optional(), target_id: z.array(z.unknown()).optional(), drug_id_view: b0643DrugSearchQueryDrugEntity.optional(), drug_type_view: z.array(b0643DrugSearchQueryDrugTypeEntity).optional(), target_id_view: z.array(b0643DrugSearchQueryTargetEntity).optional(), global_highest_dev_status: z.string().optional(), active_org_master_entity_id: z.array(z.unknown()).optional(), global_highest_dev_status_view: b0643DrugSearchQueryDevStatusEntity.optional(), active_org_master_entity_id_view: z.array(b0643DrugSearchQueryOrganizationEntity).optional()}); export const b0643DrugSearchQueryClinicalResultRegisterNumber = z.object({register_number: z.string().optional(), clinical_trial_id: z.string().optional()}); export const b0643DrugSearchQueryClinicalTrialAlert = z.object({phase: b0643DrugSearchQueryDevStatusEntity.optional(), title: z.string().optional(), event_type_cn: z.string().optional(), event_type_en: z.string().optional(), register_number: z.string().optional(), clinical_trial_id: z.string().optional(), clinical_result_id: z.string().optional(), org_master_entity_id: z.array(z.unknown()).optional(), org_master_entity_id_view: z.array(b0643DrugSearchQueryOrganizationEntity).optional(), clinical_result_register_number: z.array(b0643DrugSearchQueryClinicalResultRegisterNumber).optional()}); export const b0643DrugSearchQueryDataSource = z.object({source_url: z.string().optional()}); export const b0643DrugSearchQueryRegionEntity = z.object({region_id: z.string().optional(), display_name_cn: z.string().optional(), display_name_en: z.string().optional()}); export const b0643DrugSearchQueryDiseaseEntity = z.object({disease_id: z.string().optional(), display_name_cn: z.string().optional(), display_name_en: z.string().optional()}); export const b0643DrugSearchQueryDevStatusAlert = z.object({country: z.string().optional(), drug_id: z.string().optional(), drug_type: z.array(z.unknown()).optional(), target_id: z.string().optional(), dev_status: z.string().optional(), disease_id: z.string().optional(), data_source: z.array(b0643DrugSearchQueryDataSource).optional(), country_view: b0643DrugSearchQueryRegionEntity.optional(), drug_id_view: b0643DrugSearchQueryDrugEntity.optional(), event_type_cn: z.string().optional(), event_type_en: z.string().optional(), drug_type_view: z.array(b0643DrugSearchQueryDrugTypeEntity).optional(), target_id_view: b0643DrugSearchQueryTargetEntity.optional(), disease_id_view: b0643DrugSearchQueryDiseaseEntity.optional(), organization_id: z.string().optional(), organization_id_view: b0643DrugSearchQueryOrganizationEntity.optional()}); export const b0643DrugSearchQuerySpecialReviewEntity = z.object({dict_id: z.string().optional(), display_name_cn: z.string().optional(), display_name_en: z.string().optional()}); export const b0643DrugSearchQuerySpecialApprovalAlert = z.object({uuid: z.string().optional(), country: z.string().optional(), drug_id: z.string().optional(), drug_type: z.array(z.unknown()).optional(), target_id: z.string().optional(), disease_id: z.string().optional(), data_source: b0643DrugSearchQueryDataSource.optional(), country_view: b0643DrugSearchQueryRegionEntity.optional(), drug_id_view: b0643DrugSearchQueryDrugEntity.optional(), event_type_cn: z.string().optional(), event_type_en: z.string().optional(), drug_type_view: z.array(b0643DrugSearchQueryDrugTypeEntity).optional(), special_review: z.string().optional(), target_id_view: b0643DrugSearchQueryTargetEntity.optional(), disease_id_view: b0643DrugSearchQueryDiseaseEntity.optional(), organization_id: z.string().optional(), special_review_view: b0643DrugSearchQuerySpecialReviewEntity.optional(), organization_id_view: b0643DrugSearchQueryOrganizationEntity.optional()}); export const b0643DrugSearchQueryJournalEntity = z.object({dict_id: z.string().optional(), display_name_cn: z.string().optional(), display_name_en: z.string().optional()}); export const b0643DrugSearchQueryTranslationalMedicineAlert = z.object({title: z.string().optional(), journal_id: z.array(z.unknown()).optional(), source_url: z.string().optional(), event_time_cn: z.string().optional(), event_time_en: z.string().optional(), journal_id_view: z.array(b0643DrugSearchQueryJournalEntity).optional(), translational_medicine_id: z.string().optional()}); export const b0643DrugSearchQueryAlertEventResp = z.object({news: z.array(b0643DrugSearchQueryNewsAlert).optional(), paper: z.array(b0643DrugSearchQueryPaperAlert).optional(), patent: z.array(b0643DrugSearchQueryPatentAlert).optional(), news_ids: z.array(z.unknown()).optional(), drug_deal: z.array(b0643DrugSearchQueryDrugDealAlert).optional(), paper_ids: z.array(z.unknown()).optional(), drug_added: z.array(b0643DrugSearchQueryDrugAlert).optional(), event_size: z.number().int().optional(), news_count: z.number().int().optional(), patent_ids: z.array(z.unknown()).optional(), paper_count: z.number().int().optional(), drug_missing: z.array(b0643DrugSearchQueryDrugAlert).optional(), patent_count: z.number().int().optional(), result_count: z.number().int().optional(), drug_deal_ids: z.array(z.unknown()).optional(), clinical_trial: z.array(b0643DrugSearchQueryClinicalTrialAlert).optional(), drug_added_ids: z.array(z.unknown()).optional(), drug_deal_count: z.number().int().optional(), drug_dev_status: z.array(b0643DrugSearchQueryDevStatusAlert).optional(), drug_missing_ids: z.array(z.unknown()).optional(), special_approval: z.array(b0643DrugSearchQuerySpecialApprovalAlert).optional(), clinical_trial_ids: z.array(z.unknown()).optional(), result_added_count: z.number().int().optional(), drug_dev_status_ids: z.array(z.unknown()).optional(), clinical_trial_count: z.number().int().optional(), result_missing_count: z.number().int().optional(), special_approval_ids: z.array(z.unknown()).optional(), drug_dev_status_count: z.number().int().optional(), special_approval_count: z.number().int().optional(), translational_medicine: z.array(b0643DrugSearchQueryTranslationalMedicineAlert).optional(), clinical_trial_result_ids: z.array(z.unknown()).optional(), translational_medicine_ids: z.array(z.unknown()).optional(), translational_medicine_count: z.number().int().optional()}); export const b0643DrugSearchQueryAlertDataResponse = z.object({status: z.number().int().optional(), alert_time: z.string().optional(), alert_event_data: b0643DrugSearchQueryAlertEventResp.optional(), total_update_event_count: z.number().int().optional()}); export const b0643DrugSearchQueryResponse = z.object({data: b0643DrugSearchQueryAlertDataResponse.optional(), status: z.boolean(), error_msg: z.string().optional(), error_code: z.number().int()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * B064-3 Query drug monitoring * * POST /synapse/alert/drug_search/query */ export const createApiSynapseAlertDrugSearchQuery = async (args: CreateApiSynapseAlertDrugSearchQueryArgs, options?: CreateApiSynapseAlertDrugSearchQueryOptions) => { const {baseUrl = "https://connect.patsnap.com", fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/synapse/alert/drug_search/query${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(b0643DrugSearchQueryResponse, await res.json()) };