123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372 |
- interface Document {
- categoryId: string;
- _id: string;
- valid: number;
- properties: any;
- styles: any;
- scripts: any;
- layout: any;
- document: any;
- }
- interface Validator {
- name: string;
- level: string;
- message: string;
- }
- export type EditorMode = "form" | "free" | "readonly" | "design";
- export interface DataElements {
- [key: string]: DataElementItem | DataElementItem[];
- }
- export type DataElementItem = {
- id: string;
- value: any | null;
- element: {
- id: string;
- type: string;
- name: string;
- code: { internal: string; dataElement: string; business: string };
- labels: null;
- attributes: [];
- };
- };
- type CursorPlace =
- | "PARAGRAPH_START"
- | "PARAGRAPH_END"
- | "DOCUMENT_START"
- | "DOCUMENT_END";
- interface MenuItem {
- global: {
- text: string;
- menu?: {
- items: MenuItem[];
- };
- handler?: (menu?: any) => void;
- }[];
- }
- interface NodesByCode {
- target: {
- setReadonly: (val: boolean) => void;
- setDeletable: (val: boolean) => void;
- };
- }
- interface ElementByValue extends HTMLElement {
- /**
- * 元素聚焦
- */
- focusEnter: () => void;
- }
- type customEdit = {
- _getPatientInfo: () => any;
- };
- export declare type EditType = {
- EMR: {
- getDocument(): {
- getTablesByCode: (id: string) => any[];
- };
- };
- setViewStyle: (view, value) => void;
- isRevisionMode: boolean;
- documentData: {
- _id: string;
- categoryId: string;
- properties: {
- categoryCode: string;
- };
- };
- _cacheDB: IDBTransaction;
- loadCacheData: (val: string) => any;
- delCacheData: (val: string) => any;
- setCacheData: (val: string) => any;
- openCache: () => void;
- _cacheDBIsOpen: boolean;
- on: (name: string, callback: (...args: any[]) => void) => void;
- /**
- * 用于获取当前病历完整数据 该方法通常用于保存病历数据时调用
- *
- * 参数:无
- * 返回值:返回json结构,参见:文档结构。
- * 业务系统可在保存前对其内容进行修改。
- */
- getDocument: () => Document;
- getEditorMode: () => EditorMode;
- highlight: (comp: HTMLElement, time: number) => void;
- getElementsData: () => {
- [key: string]: any;
- };
- getElementByValue: (id: string, value?: any) => ElementByValue;
- view: HTMLElement & {
- container: {
- find: (id: string) => any[] & {
- each: (fn: (index: number, item: any) => void) => void;
- };
- };
- };
- ModelService: {
- setWalkerRoot: (walker: any, node: any) => any;
- createTreeWalker: (node: any) => any;
- getDataElementsFromWalker: (
- walker: any,
- name: string,
- value: string
- ) => any;
- getElementsDataFromWalker: (walker: any, name?: string) => any;
- };
- setEditorMode: (val: EditorMode) => void;
- getValidator: () => {
- /**
- *
- * @param val 是否显示节点信息 , 默认值 false
- */
- valid: (val: boolean) => Validator[];
- };
- /**
- * {Boolean} includeEmptyValue 是否获取非必填并且不是数据元 值为空的元素 默认 false
- * @param val type 要获取的编码类型 默认 code。 code|business|internal|dataElement, 一般不用dataElement,当指定的编码类型不存在时返回 code
- */
- getDataElements: (
- val: "code" | "business" | "internal" | "dataElement",
- a?: boolean,
- b?: boolean
- ) => DataElements;
- /**
- * 批量设置组件值
- *
- * 适用组件:智能文本框(smarttext)、复选框(checkfield)
- * 参数:
- * {Object} data 要设置的key/value对象 同getAppContext中的data节点
- * {Boolean} overwrite 是否覆盖原来的值 默认true
- * {Boolean}. commandStack 是否进入撤销命令栈 默认true。当setValues在一个操作命令中调用的时候commandStack设置为false和合并父操作的命令栈 例如插入片段事件/或设置值后出发的change事件
- * {DocumentFragment} documdentFragment插入的文档片段模型,为空时将值填充到整个文档,不为空时将值填充到文档片段
- * 返回值 无
- * @param val
- */
- setValues: (
- val: object,
- overwrite?: boolean,
- commandStack?: boolean,
- documentFragment?: object
- ) => void;
- getComponents: () => any[];
- /**
- * editor.execute(commandName,[...args])
- *
- * 执行编辑器命令
- *
- * 参数
- * @param name commandName 命令名称
- * @param value args 执行命令携带的参数
- */
- execute: (name: string | "insertContents", ...value: any[]) => void;
- /**
- * 移动光标到place 指定位置
- *
- * 参数:
- * {string} place PARAGRAPH_START | PARAGRAPH_END | DOCUMENT_START | DOCUMENT_END
- * PARAGRAPH_START:移动光标到当前段落开头
- * PARAGRAPH_END:移动光标到当前段落结尾
- * DOCUMENT_START:移动光标到文档开头
- * DOCUMENT_END:移动光标到文档结尾
- * 返回值:undefined
- * @param place
- */
- setCursor: (place: CursorPlace) => void;
- /**
- * 滚动到当前光标所在位置
- *
- * editor.scrollToCursor([middle])
- *
- * @param middle middle 当光标在可视区域后方时,是否滚动到屏幕中间 默认false
- */
- scrollToCursor: (...middle: boolean[]) => void;
- model: {
- document: {
- getRoot: () => {
- getChild: (val: number) => {
- view: any;
- };
- childCount: number;
- getChildren: any;
- };
- };
- };
- /**
- * 设置审阅模式
- *
- * 参数
- * {String} mode 接收 on:开启审阅模式,off:关闭审阅模式
- * 开启审阅模式后,病历上的修改会被记录下来,默认开启后,页面上没有任何表现,需要通过调用editor.setRevisionShowMode(flag) 展示修改
- */
- setRevisionMode: (val: "on" | "off") => void;
- /**
- * 设置审阅模式的展现方式
- * @param val flag可接受的值如下
- * 0: 页面上不显示修改记录
- * 1: 病历右侧会以列表的形式显示 添加,删除,更新的记录
- * 2: 嵌入病历显示修改记录,新增的记录会用背景颜色标记,删除的记录 通过画删除线标记
- */
- setRevisionShowMode: (val: 0 | 1 | 2 | number) => void;
- getScriptRuntime: () => {
- EMR: {
- getDocument: () => {
- getNodesByCode: (val: any, name: string) => NodesByCode[];
- getComponentsByCode: (name: string) => any[];
- };
- };
- };
- getViewByElType: (value: any, name: string) => any;
- /**
- * 自定义编辑器快捷键
- *
- * 参数
- * {Function} callback
- * @param keyName 绑定快捷键
- * @param callback 快捷键触发函数 该函数接受3个参数 evt:事件
- * view: 当前光标或者选区开始所在位置的组件view
- * position: {x ,y} 光标或者选区开始位置坐标(相对于文档,内部通过getBoundingClientRect()方法获取)
- */
- setShortcutKey: (
- keyName: string,
- callback: (
- e: Event,
- view: any,
- position: {
- x: number;
- y: number;
- }
- ) => void
- ) => void;
- /**
- * 注册右键菜单
- * @param menuItem 数据
- */
- regCtxMenu: (menuItem: MenuItem) => void;
- /**
- * 获取鼠标位置
- */
- getCursorPosition: () => { x: number; y: number };
- /**
- * 用于设置当前病历文档完整数据
- *
- * 参数
- * @param data 完整的病历文档结构。
- * @param isRender 是否根据文档结构进行立即渲染页面,如果为false 则只设置文档数据不进行渲染操作
- * @param clearUndoStack 是否清空撤销栈
- */
- setDocument: (
- data: any,
- isRender?: boolean,
- clearUndoStack?: boolean
- ) => void;
- /**
- * 设置实时分页
- * @param isPaginate true:开启实时分页 false:关闭实时分页
- */
- setPaginate: (isPaginate: boolean) => void;
- renderer: {
- pageView: {
- marginTopWithPaging: number;
- /**
- * 重新绘制页面布局
- */
- attachLayout: () => void;
- fixEmpty: () => void;
- };
- };
- /**
- * 获取大纲的树状图
- */
- getOutline: () => Outline[];
- /**
- * 设置 setApplicatioinContext
- * @param data 数据
- * @param filling 是否填充
- * @param forcedReplacement 是否强制替换
- */
- setApplicationContext: (
- data: any,
- filling: boolean,
- forcedReplacement: boolean
- ) => void;
- } & customEdit;
- export declare type Runtime = {
- saveDocument: (
- document: any,
- success: (res?: any) => void,
- error: (err?: any) => void
- ) => void;
- loadDocument: (
- success: (res?: any) => void,
- error: (err?: any) => void,
- param: any
- ) => void;
- };
- export interface Outline {
- id: string;
- type: string;
- typeName: string;
- text: string;
- parent: string;
- business: string;
- children: {
- business: string;
- code: string;
- dataElement: string;
- id: string;
- internal: string;
- leaf: boolean;
- parent: string;
- text: string;
- type: string;
- typeName: string;
- }[];
- }
|