import type { IComminList } from '../common.type';
import type { IPatientInfo } from '../HemodiPatients/types';
export interface ListHistoryApiParams {
    clientCode: string;
    patQueryValue: string;
    date1: string;
    date2: string;
    page: number;
    size: number;
}

export interface BillInfoListReceipts1Params {
    patientCode: string;
    date: string;
    drugType: 0 | 1;
}

export interface BillInfoListReceipts23Params {
    patientCode: string;
    date: string;
}

export interface ISaveDefaultHisPharmacistParams {
    clientCode: string;
    pharmacist: string;
}

// export interface IRevisitrecord {
//     id: number;
//     code: string;
//     clientCode: string;
//     patientCode: string;
//     diagnosisTime: string | Date;
//     diagnosticDoctor: string;
//     diseaseDescription: string;
//     disposeOf: string;
//     clinicDiagnosis: string;
//     createTime: string | null;
//     createUser: number | null,
//     deletedTime: string | null;
//     isDeleted: number;
//     remark: string;
//     updateTime: string | null
//     updateUser: number | null;
//     patientInfo: IPatientInfo;
// }

export interface IGetConsumeInfoParams {
    date1: string;
    date2: string;
    patCode: string;
}


export interface IGetConsumeInfo {
    patName: string;
    patCode: string;
    date1: string;
    date2: string;
    detailInfos: IGetConsumeInfoDeatil[];
    // 当月总费用: number | null;
    // 当月药物费用: number | null;
    // 当月限制用药费用: number | null;
}

export interface IGetConsumeInfoDeatil {
    当月总费用: number;
    当月药物费用: number;
    当月限制用药费用: number;
    报销方式名称: string;
    报销方式编号: string;
}


export interface IRevisitrecord {
    id: number;
    code: string;
    clientCode: string;
    patientCode: string;
    diagnosisTime: string | Date;
    diagnosticDoctor: string;
    diseaseDescription: string;
    disposeOf: string;
    clinicDiagnosis: string;
    createTime: string | null;
    createUser: number | null,
    deletedTime: string | null;
    isDeleted: number;
    remark: string;
    updateTime: string | null
    updateUser: number | null;
    patientInfo: IPatientInfo;
}


export interface IRevisitrecordSave extends Omit<IRevisitrecord, 'patientInfo' | 'updateUser' | 'updateTime' | 'remark' | 'isDeleted' | 'deletedTime' | 'createUser' | 'createTime'> {
    createTime?: string | null;
    createUser?: number | null,
    deletedTime?: string | null;
    isDeleted?: number;
    remark?: string;
    updateTime?: string | null
    updateUser?: number | null;
    patientInfo?: IPatientInfo;
}


export interface IRevisitrecordListRes extends Omit<IComminList, 'list'> {
    list: IRevisitrecord[];
}


export interface IRevisitrRecordTemp {
    clientCode: string;
    code: string;
    createTime: string | null;
    createUser: number | null,
    deletedTime: string | null;
    id: number,
    isDeleted: number,
    remark: string,
    sortOrder: number,
    templateBody: string;
    patientCode: string;
    updateTime: string | null;
    updateUser: number | null;
}

export interface IRevisitrRecordTempListRes extends Omit<IComminList, 'list'> {
    list: IRevisitrRecordTemp[];
}



export interface IDrugTemplate {
    id: number;
    code: string
    clientCode: string;
    drugCode: string;
    drugName: string;
    remark: string;
    createTime: string;
    createUser: number;
    updateTime: string;
    updateUser: number;
    isDeleted: number;
    deletedTime: string;
    sortOrder: number;
    drugBody: string;
}



export interface IDrugTemplateListRes extends Omit<IComminList, 'list'> {
    list: IDrugTemplate[];
}



export interface IDrugTemplateGetDurgDescsParams {
    patientCode: string;
    queryDate: string;
}

export interface IGetConsumeInfoParams {
    date1: string;
    date2: string;
    patCode: string;
}
 

export interface IGetConsumeInfo {
    patName: string;
    patCode: string;
    date1: string;
    date2: string;
    detailInfos: IGetConsumeInfoDeatil[];
    // 当月总费用: number | null;
    // 当月药物费用: number | null;
    // 当月限制用药费用: number | null;
}

export interface IGetConsumeInfoDeatil {
    当月总费用: number;
    当月药物费用: number;
    当月限制用药费用: number;
    报销方式名称: string;
    报销方式编号: string;
    当月医保限额上限: number;
}



export interface IPatientSelfInspectionParams {
    startTime: string;
    endTime: string;
    clientCode: string;
    timeSlot: string; // 0上午、1下午、2晚上、-1全部
    patQueryValue: string; // 患者模糊查询编号（拼音、名称、患者Code）
}