Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 日韩偷拍自拍,99久久精品免费看国产高清,中文字幕永久视频

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          Java Web架構(gòu)師那些事

          Java Web架構(gòu)師那些事

          今天晚上喝了幾兩65°的紅星二鍋頭,坐在沙發(fā)上回想了下我這苦逼的程序員人生,從程序員到高級(jí)工程師的成長(zhǎng)過(guò)程。想了想主題,今天就寫篇《關(guān)于架構(gòu)師那些事》的文章吧。

          總結(jié)

          所有架構(gòu)師都不是自帶光環(huán),都是是從程序員->工程師,然后跟對(duì)一個(gè)好的領(lǐng)導(dǎo)或者好的項(xiàng)目開(kāi)始學(xué)習(xí)框架,然后結(jié)合現(xiàn)有的知識(shí)一步一步磨煉成就了現(xiàn)在架構(gòu)師的光環(huán),從來(lái)就沒(méi)有一步登天的人才,都是從埋坑到填坑的過(guò)程中走過(guò)來(lái)的。

          我曾經(jīng)參與了很多項(xiàng)目的架構(gòu)搭建及技術(shù)框架的選型,利用現(xiàn)在主流的框架搭建過(guò)平臺(tái),也利用一些開(kāi)源的平臺(tái)做過(guò)一些開(kāi)發(fā),其中走過(guò)的坑只有自己知道,那叫一個(gè)“爽”,包括:

          • 前端ui:ligerui、layui、easyui
          • 后臺(tái)框架:struts2/spring mvc、spring、mybatis\hibernate
          • 其它組件:activiti、shiro、quartz等
          • 數(shù)據(jù)庫(kù):mysql、Oracle、SQl Server

          多個(gè)tomcat分布式部署如何共享session,自己也寫過(guò)比較復(fù)雜的功能然后封裝成組件給程序員調(diào)用,例如權(quán)限控制、自定義報(bào)表組件、打印組件、憑證組件等。隨著現(xiàn)在技術(shù)的不斷成熟,不同階梯的程序員也越來(lái)越多,怎樣既能在提高開(kāi)發(fā)效率的前提下,又能節(jié)省企業(yè)的成本,成為了不少科技公司管理的一大難題,特別是剛開(kāi)始創(chuàng)業(yè)的公司。所以我們?cè)谀玫巾?xiàng)目需要架構(gòu)之前,要先了解項(xiàng)目的業(yè)務(wù)和模式,今天跟大家分享下我的一些經(jīng)驗(yàn)。

          1. 首先我們要先了解項(xiàng)目的運(yùn)營(yíng)模式,不同的運(yùn)營(yíng)模式架構(gòu)必然是不一樣的,例如ERP、OA、云平臺(tái)、網(wǎng)上商城、app\小程序\公眾號(hào)后臺(tái)、網(wǎng)站等。
          2. 項(xiàng)目是否要支持跨平臺(tái),linux\windows,業(yè)務(wù)數(shù)據(jù)量能達(dá)到多少,是否要同時(shí)支持SQL Server、mysql、Oracle等主流數(shù)據(jù)庫(kù)
          3. 項(xiàng)目有哪些業(yè)務(wù),某些業(yè)務(wù)是否需要內(nèi)外網(wǎng)隔離訪問(wèn),例如財(cái)務(wù)系統(tǒng)內(nèi)網(wǎng)訪問(wèn),其他系統(tǒng)外網(wǎng)訪問(wèn)等(這個(gè)時(shí)候就需要前置機(jī)程序),是否有高并發(fā)的業(yè)務(wù)等
          4. 項(xiàng)目有哪些復(fù)雜的功能需要攻克的,例如需要工作流、自定義表單、自定義報(bào)表、常規(guī)打印\套打、上傳下載、導(dǎo)入導(dǎo)出等
          5. 前端需要什么樣的風(fēng)格,是否需要支持主流瀏覽器,是否包含一些常用或者特殊的控件,例如表格、樹(shù)、下拉框、表單等
          6. 最后一條就是打算投多少成本,有多少人員,用多少周期去開(kāi)發(fā)

          就暫時(shí)列這么多吧(酒勁上來(lái)了),可以根據(jù)自己的經(jīng)驗(yàn)和業(yè)務(wù)知識(shí)擴(kuò)大下范圍,也可以利用一些現(xiàn)有的快速開(kāi)發(fā)平臺(tái)然后再搭配組裝,所有的架構(gòu)和選型都沒(méi)有對(duì)與錯(cuò),只有適合自己就是最好的。

          分享

          快速開(kāi)發(fā)平臺(tái),就是可以使得開(kāi)發(fā)更為快速的開(kāi)發(fā)平臺(tái)。當(dāng)開(kāi)發(fā)平臺(tái)產(chǎn)生之后,雖然減少了編程人員大量的編程時(shí)間,但是很多開(kāi)發(fā)平臺(tái)的效果并不是很理想,比如說(shuō)某些開(kāi)發(fā)平臺(tái)比較復(fù)雜、難以掌握;有的開(kāi)發(fā)平臺(tái)通用性比較差;有的開(kāi)發(fā)平臺(tái)在時(shí)間上并沒(méi)有得到改善;還有的依然還是需要寫很多代碼等等。這些問(wèn)題的存在促使開(kāi)發(fā)者不斷的摸索、不斷的改進(jìn),到最后越做越成熟,以致于現(xiàn)在市面上出現(xiàn)的大部分開(kāi)發(fā)平臺(tái)效率都非常高,他們改善了以往的產(chǎn)品存在的缺陷,使得開(kāi)發(fā)過(guò)程比以往更簡(jiǎn)潔、編寫代碼更少、開(kāi)發(fā)效率越來(lái)越高。我也整理了一些開(kāi)源的平臺(tái)的資料,如下:

          JeeSite

          GitHub地址:https://github.com/thinkgem/jeesite

          在線演示

          1. 地址:http://demo.jeesite.com/
          2. 賬號(hào):system
          3. 密碼:admin

          JeeSite 是一個(gè) Java EE 企業(yè)級(jí)快速開(kāi)發(fā)平臺(tái),基于經(jīng)典技術(shù)組合(Spring Boot、Spring MVC、Apache Shiro、MyBatis、Beetl、Bootstrap、AdminLTE)采用經(jīng)典開(kāi)發(fā)模式,讓初學(xué)者能夠更快的入門并投入到團(tuán)隊(duì)開(kāi)發(fā)中去。在線代碼生成功能,包括核心模塊如:組織機(jī)構(gòu)、角色用戶、菜單及按鈕授權(quán)、數(shù)據(jù)權(quán)限、系統(tǒng)參數(shù)、內(nèi)容管理、工作流等。采用松耦合設(shè)計(jì);界面無(wú)刷新,一鍵換膚;眾多賬號(hào)安全設(shè)置,密碼策略;在線定時(shí)任務(wù)配置;支持集群,支持SAAS;支持多數(shù)據(jù)源。

          技術(shù)選型

          • 主框架:Spring Boot 2.0、Spring Framework 5.0、Apache Shiro 1.4、J2Cache
          • 持久層:Apache MyBatis 3.4、Hibernate Validation 6.0、Alibaba Druid 1.1
          • 視圖層:Spring MVC 5.0、Beetl 2.7 替換JSP、Bootstrap 3.3、AdminLTE 2.4
          • 前端組件:jQuery 1.12、jqGrid 4.7、layer 3.0、zTree 3.5、jquery-validation
          • 工具組件:Apache Commons、Logback 1.1、Jackson 2.8、POI 3.14、Quartz 2.2
          • 技術(shù)選型詳情:http://jeesite4.mydoc.io/?t=273599

          JeeSite演示demo

          IT榻榻米(收費(fèi))

          官網(wǎng)地址:http://www.itttm.com/

          IT榻榻米是一款java輕量級(jí)智能快速開(kāi)發(fā)平臺(tái),可以幫助您解決項(xiàng)目中90%的重復(fù)工作,讓您更多關(guān)注業(yè)務(wù)邏輯。由于本身輕量級(jí)特性,可根據(jù)自身需求二次開(kāi)發(fā)想要的功能。

          • 使用 Spring boot,主流趨勢(shì),開(kāi)箱即用 。
          • 使用 Maven 多模塊 構(gòu)建項(xiàng)目,方便快捷。
          • 使用 Thymeleaf模板引擎,易使用,夠強(qiáng)大。
          • 使用 安全框架
          • Apache Shiro,安全可靠。
          • websocket實(shí)時(shí)聊天,七牛云,短信通知...

          IT榻榻米演示demo

          IT榻榻米套餐

          JavaFast(收費(fèi))

          官網(wǎng)地址:http://www.javafast.cn/

          • 基礎(chǔ)架構(gòu):采用 SpringMVC + MyBatis + BootStrap + Apache Shiro + Ehcache 基礎(chǔ)架構(gòu)
          • 輕標(biāo)準(zhǔn)化:簡(jiǎn)單功能由代碼生成器生成使用,復(fù)雜業(yè)務(wù)采用表單自定義,只需要寫極少代碼,即可實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯
          • 高效穩(wěn)定:經(jīng)過(guò)了專業(yè)壓力測(cè)試,百億級(jí)別數(shù)據(jù)性能測(cè)試,保證后臺(tái)數(shù)據(jù)的準(zhǔn)確性和頁(yè)面訪問(wèn)速度和穩(wěn)定性.
          • 代碼生成:支持多種數(shù)據(jù)模型,根據(jù)表生成對(duì)應(yīng)的Entity,Service,Dao,Action,JSP等,增刪改查/排序/導(dǎo)出導(dǎo)入Excel/權(quán)限控制/功能生成直接使用。生成前端代碼、生成后端代碼、生成高性能SQL
          • 多種UI支持:系統(tǒng)支持多種風(fēng)格的自動(dòng)切換,可滿足企業(yè)對(duì)UI的美觀要求 .Bootstrap前端框架、支持手機(jī)或平板、集成企業(yè)微信
          • 簡(jiǎn)易報(bào)表配置:支持報(bào)表在線配置,通過(guò)簡(jiǎn)單配置SQL語(yǔ)句即可實(shí)現(xiàn)圖形報(bào)表展示。SQL配置、圖形報(bào)表、數(shù)據(jù)列表

          JavaFast演示demo

          Jeecg(商業(yè)收費(fèi))

          官網(wǎng)地址:http://www.jeecg.org/

          演示地址:http://demo.jeecg.org/loginController.do?login

          JEECG (J2EE Code Generation)是一款基于代碼生成器的免費(fèi)開(kāi)源的快速開(kāi)發(fā)平臺(tái)。使用JEECG可以簡(jiǎn)單快速地開(kāi)發(fā)出企業(yè)級(jí)的Web應(yīng)用系統(tǒng)。

          隨著WEB UI框架(EasyUi/Jquery UI/Ext)等的逐漸成熟,系統(tǒng)界面逐漸實(shí)現(xiàn)統(tǒng)一化,代碼生成器也可以生成統(tǒng)一規(guī)范的界面!代碼生成+手工MERGE半智能開(kāi)發(fā)將是新的趨勢(shì),單表數(shù)據(jù)模型和一對(duì)多數(shù)據(jù)模型的增刪改查功能直接生成使用,可節(jié)省50%工作量,快速提高開(kāi)發(fā)效率!

          Java編程有很多重復(fù)機(jī)械代碼,生成器可以幫助解決50%的重復(fù)工作,讓開(kāi)發(fā)更多關(guān)注業(yè)務(wù)邏輯,從而實(shí)現(xiàn)代碼生成+手工merge的半智能開(kāi)發(fā)!JEECG智能框架可以有效解決信息孤島問(wèn)題,生成統(tǒng)一代碼、統(tǒng)一規(guī)范、統(tǒng)一設(shè)計(jì)思路,使你能在這個(gè)平臺(tái)上,快速開(kāi)發(fā)出高效高質(zhì)量代碼,縮短項(xiàng)目開(kāi)發(fā)周期。

          平臺(tái)亮點(diǎn)

          • 1.采用主流框架,容易上手; 代碼生成器依賴性低,很方便的擴(kuò)展能力,可完全實(shí)現(xiàn)二次開(kāi)發(fā);
          • 2.開(kāi)發(fā)效率很高,采用代碼生成器,單表數(shù)據(jù)模型和一對(duì)多(父子表)數(shù)據(jù)模型,增刪改查功能自動(dòng)生成,菜單配置直接使用;
          • 3.頁(yè)面校驗(yàn)自動(dòng)生成(必須輸入、數(shù)字校驗(yàn)、金額校驗(yàn)、時(shí)間控件等);
          • 4.封裝完善的用戶基礎(chǔ)權(quán)限、強(qiáng)大的數(shù)據(jù)權(quán)限、和數(shù)據(jù)字典等基礎(chǔ)功能,直接使用無(wú)需修改
          • 5.常用共通封裝,各種工具類(定時(shí)任務(wù),短信接口,郵件發(fā)送,Excel導(dǎo)出等),基本滿足80%項(xiàng)目需求
          • 6.集成簡(jiǎn)易報(bào)表工具,圖像報(bào)表和數(shù)據(jù)導(dǎo)出非常方便,可極其方便的生成pdf、excel、word等報(bào)表;
          • 7.集成工作流activiti,并實(shí)現(xiàn)了只需在頁(yè)面配置流程轉(zhuǎn)向,可極大的簡(jiǎn)化jbpm工作流的開(kāi)發(fā);用jbpm的流程設(shè)計(jì)器畫出了流程走向,一個(gè)工作流基本就完成了,只需寫很少量的java代碼;
          • 8.UI快速開(kāi)發(fā)庫(kù),針對(duì)WEB UI進(jìn)行標(biāo)準(zhǔn)式封裝,頁(yè)面統(tǒng)一采用自定義標(biāo)簽實(shí)現(xiàn)功能:列表數(shù)據(jù)展現(xiàn)、頁(yè)面校驗(yàn)等,標(biāo)簽使用簡(jiǎn)單清晰且便于維護(hù)
          • 9.在線流程設(shè)計(jì),采用開(kāi)源Activiti流程引擎,實(shí)現(xiàn)在線畫流程,自定義表單,表單掛靠,業(yè)務(wù)流轉(zhuǎn)
          • 10.查詢過(guò)濾器:查詢功能自動(dòng)生成,后臺(tái)動(dòng)態(tài)拼SQL追加查詢條件;支持多種匹配方式(全匹配/模糊查詢/包含查詢/不匹配查詢);
          • 11.多數(shù)據(jù)源:及其簡(jiǎn)易的使用方式,在線配置數(shù)據(jù)源配置,便捷的從其他數(shù)據(jù)抓取數(shù)據(jù);
          • 12.國(guó)際化:支持多語(yǔ)言,開(kāi)發(fā)國(guó)際化項(xiàng)目非常方便;
          • 13.數(shù)據(jù)權(quán)限(精細(xì)化數(shù)據(jù)權(quán)限控制,控制到行級(jí),列表級(jí),表單字段級(jí),實(shí)現(xiàn)不同人看不同數(shù)據(jù),不同人對(duì)同一個(gè)頁(yè)面操作不同字段
          • 14.多種首頁(yè)風(fēng)格切換,支持自定義首頁(yè)風(fēng)格。(經(jīng)典風(fēng)格、Shortcut風(fēng)格、ACE bootstrap風(fēng)格、云桌面風(fēng)格)
          • 15.在線配置報(bào)表(無(wú)需編碼,通過(guò)在線配置方式,實(shí)現(xiàn)曲線圖,柱狀圖,數(shù)據(jù)等報(bào)表)
          • 16.簡(jiǎn)易Excel導(dǎo)入導(dǎo)出,支持單表導(dǎo)出和一對(duì)多表模式導(dǎo)出,生成的代碼自帶導(dǎo)入導(dǎo)出功能
          • 17.自定義表單,支持用戶自定義表單布局,支持單表,一對(duì)多表單、支持select、radio、checkbox、textarea、date、popup、列表、宏等控件

          平臺(tái)架構(gòu)

          • JEECG v2 系列版本采用主流S2SH框架,容易上手;代碼生成器依賴性低,很方便的擴(kuò)展能力,可完全實(shí)現(xiàn)二次開(kāi)發(fā);
          • JEECG V3 系列版本采用SpringMVC+Hibernate+Spring jdbc架構(gòu)技術(shù),
          • 開(kāi)發(fā)效率很高,單表數(shù)據(jù)模型和一對(duì)多(父子表)數(shù)據(jù)模型的增刪改查自動(dòng)生成,功能直接使用;
          • 頁(yè)面校驗(yàn)自動(dòng)生成(必須輸入、數(shù)字校驗(yàn)、金額校驗(yàn)、時(shí)間空間等);
          • 封裝完善的用戶權(quán)限和數(shù)據(jù)字典等基礎(chǔ)功能,直接使用無(wú)需修改
          • 常用共通封裝,各種工具類(定時(shí)任務(wù),短信接口,郵件發(fā)送,Excel導(dǎo)出等),基本 滿足80%項(xiàng)目需求
          • 集成簡(jiǎn)易報(bào)表工具,圖像報(bào)表和數(shù)據(jù)導(dǎo)出非常方便,可極其方便的生成pdf、excel、word等報(bào)表;
          • 集成工作流jbpm,并實(shí)現(xiàn)了只需在頁(yè)面配置流程轉(zhuǎn)向,可極大的簡(jiǎn)化jbpm工作流的開(kāi)發(fā);用jbpm的流程設(shè)計(jì)器畫出了流程走向,一個(gè)工作流基本就完成了,只需寫很少量的java代碼

          Jeecg演示demo1

          Jeecg演示demo2

          EOVA

          官網(wǎng)地址:http://www.eova.cn/

          技術(shù)亮點(diǎn)

          • 以元數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù)為核心思想
          • 使用了極速框架JFinal,站在巨人的肩膀上
          • 以O(shè)OP思想結(jié)合EasyUI和Bootstrap樣式自創(chuàng)EovaUI
          • 使用Beetl融合Java和Script
          • 兼容主流數(shù)據(jù)庫(kù)Mysql、Oracle、Postgre...
          • 可以一鍵完成CRUD,但不僅限于CRUD
          • 靈動(dòng)迅捷,多快好省,不影響你你實(shí)現(xiàn)任何功能

          EOVA演示demo

          Dorado

          官網(wǎng)地址:http://bsdn.org/projects/dorado7

          演示地址:http://bsdn.org/projects/dorado7/deploy/sample-center/com.bstek.dorado.sample.Main.d

          Dorado Presentation Middleware(即Dorado展現(xiàn)中間件,以下簡(jiǎn)稱Dorado)致力于輔助Web應(yīng)用中表現(xiàn)層的開(kāi)發(fā)過(guò)程。Dorado主要可以為您帶來(lái)如下兩方面的使用價(jià)值:

          • 更加美觀、更加人性化的Web操作界面。
          • 更加高效的表現(xiàn)層開(kāi)發(fā)效率。

          Dorado Presentation Middleware產(chǎn)品包含3個(gè)主要的功能部分:Web客戶端、服務(wù)端引擎、IDE集成開(kāi)發(fā)工具。(見(jiàn)下面插圖)

          • Web客戶端-主要利用Javascript搭建的純?yōu)g覽器前端展現(xiàn)系統(tǒng),可支持目前較為常見(jiàn)的所有主流瀏覽器。
          • 服務(wù)端引擎-用于輔助Dorado Web客戶端的自動(dòng)生成,客戶端與服務(wù)端的數(shù)據(jù)通信、狀態(tài)同步,以及Dorado展現(xiàn)層與后臺(tái)系統(tǒng)的集成等。
          • IDE集成開(kāi)發(fā)工具-Eclipse插件形式的集成開(kāi)發(fā)工具。用于輔助開(kāi)發(fā)人員對(duì)Dorado界面及其他相關(guān)配置進(jìn)行快速的定制。

          主要功能特點(diǎn)

          1. 全新的Web客戶端

          Dorado7提供了全新打造的Web客戶端,這包括全新的基礎(chǔ)運(yùn)行框架和全新的控件庫(kù)。較之Dorado的前作,新的Web客戶端將帶來(lái)如下的增強(qiáng):

          • 支持所有主流瀏覽器-Dorado7將兼容所有主流的瀏覽器,包括IE、Chrome、Firefox、Safari、Opera以及以這5種瀏覽器為內(nèi)核的其他瀏覽器。 結(jié)合目前各瀏覽器在性能、穩(wěn)定性、功能等各方面的因素,我們推薦用戶使用Chrome作為首選的瀏覽器。
          • 更加豐富的控件庫(kù)-初始包含超過(guò)60個(gè)的界面控件,并且此數(shù)量還會(huì)不斷的提高。
          • 更加Ajax-由于在設(shè)計(jì)之初給予了周全的考慮,因此Dorado7可以在幾乎所有的交互過(guò)程中以異步請(qǐng)求替代同步請(qǐng)求,這將使界面的操作體驗(yàn)獲得極大的提升。 同時(shí),Dorado7中還提供了獨(dú)特的Ajax請(qǐng)求自動(dòng)合并技術(shù),以盡可能減少與服務(wù)端之間的實(shí)際交互次數(shù),進(jìn)一步提高界面運(yùn)行效率。
          • 管理庫(kù)文件,實(shí)現(xiàn)按需裝載-Dorado7提供了以資源包的形式對(duì)Javascript和CSS文件進(jìn)行管理的功能,不但系統(tǒng)內(nèi)部的庫(kù)文件以此種方式進(jìn)行管理,用戶也可以將自己的庫(kù)文件納入這一管理機(jī)制。 通過(guò)這一功能,用戶可以定義各資源包之間的依賴關(guān)系、實(shí)現(xiàn)庫(kù)文件的運(yùn)行時(shí)自動(dòng)合并、以及庫(kù)文件的按需裝載。 這可以在性能優(yōu)化、項(xiàng)目維護(hù)等方面帶來(lái)諸多好處。
          • 強(qiáng)大的客戶端調(diào)試器-新的客戶端調(diào)試器可以提供分級(jí)日志、API測(cè)試、頁(yè)面結(jié)構(gòu)剖析等調(diào)試功能。 借助新的調(diào)試器您甚至還可以隨時(shí)查看/修改任意Dorado對(duì)象的屬性值、分析DataSet中的實(shí)時(shí)數(shù)據(jù)。配合Dorado7中全新的異常處理機(jī)制,相比前作開(kāi)發(fā)人員將擁有更加豐富的調(diào)試手段。
          • 完整的拖拽功能支持-Dorado7中所有的控件都將支持拖拽操作的屬性、事件和API接口。

          2. 立體數(shù)據(jù)模型

          “立體數(shù)據(jù)模型”因其相對(duì)于平面數(shù)據(jù)模型(二維數(shù)據(jù)模型)而得名。即指Dorado7推翻了Dorado前作中以DataSet為媒介、以二維表形式對(duì)于展現(xiàn)數(shù)據(jù)進(jìn)行封裝和管理的設(shè)計(jì)思路。 Dorado7不再局限數(shù)據(jù)必須以二維表結(jié)構(gòu)與DataSet對(duì)接,而是可以支持非常自由的數(shù)據(jù)形式。并且也不再提供專用的數(shù)據(jù)封裝對(duì)象。 這些變化使得展現(xiàn)層中的數(shù)據(jù)更加純粹、更加貼切真實(shí)的業(yè)務(wù)含義。自然,也使開(kāi)發(fā)變得更加便利、更加生動(dòng)。

          “立體數(shù)據(jù)模型”是Dorado7相對(duì)于前作最重要的概念變化,也是Dorado7最為核心的設(shè)計(jì)思想。 以上的寥寥數(shù)語(yǔ)并不足以闡明這一抽象概念,請(qǐng)參考 Dorado7方法論 中關(guān)于“立體數(shù)據(jù)模型”的更多論述。

          3. 沒(méi)有JSP的Web

          秉承了Dorado產(chǎn)品的一貫風(fēng)格,Dorado7仍以XML形式的視圖配置文件作為定義Web界面的主要手段。 不過(guò),在Dorado7中這里的視圖配置文件被賦予了更多的內(nèi)涵,視圖配置文件已經(jīng)可以完整的描述Web界面的所有特性,JSP不再是Dorado7的必選項(xiàng)。 在大多數(shù)情況下,直接訪問(wèn)一個(gè)視圖配置文件就可以得到一個(gè)功能完整的Web界面。

          可能很多開(kāi)發(fā)人員對(duì)于此特性會(huì)感到一絲不安,出于某些技術(shù)人員習(xí)慣以及頁(yè)面需求等原因,開(kāi)發(fā)人員可能仍然需要以HTML形式來(lái)實(shí)現(xiàn)頁(yè)面的布局。 Dorado7同樣對(duì)此種使用方式提供了完善的支持。開(kāi)發(fā)者可以很方便的使用JSP、Velocity或者其他類似的技術(shù)來(lái)為視圖配置文件定義布局方式。 并且,新的開(kāi)發(fā)方式讓美工人員與開(kāi)發(fā)人員的合作變得更為可行和便利。以JSP為例,Dorado7不再引入繁多的Taglib標(biāo)簽庫(kù),而是以純HTML方式的占位符來(lái)輔助Web頁(yè)面的布局。

          4. 智能方法適配

          “智能方法適配”是指允許開(kāi)發(fā)人員盡可能按照自己的意愿、業(yè)務(wù)的需要來(lái)定義他們的業(yè)務(wù)方法,然后由Dorado引擎自動(dòng)根據(jù)場(chǎng)景、參數(shù)名、參數(shù)類型等因素來(lái)判斷應(yīng)當(dāng)怎樣調(diào)用該業(yè)務(wù)方法。 “智能方法適配”是Dorado7提供的一個(gè)非常有特色的功能,提供此功能的主要目的是盡量減少開(kāi)發(fā)人員所需要掌握的Dorado API,讓業(yè)務(wù)方法的代碼更加“業(yè)務(wù)化”,更加易于閱讀。

          通過(guò)“智能方法適配”也可以很好的體驗(yàn)出Dorado7所提倡的“基于約定而非配置”進(jìn)行開(kāi)發(fā)的理念。在實(shí)際的應(yīng)用場(chǎng)景中大部分實(shí)現(xiàn)了Dorado前端的功能中可能并不需要引入任何Dorado的API。

          5. 擴(kuò)展和重用

          為提高Dorado7產(chǎn)品的擴(kuò)展性和可重用性我們?cè)贒orado7中提供了很多新的特性,這些特性主要包括:

          • 疊加式配置-當(dāng)用于需要設(shè)置或改變Dorado中的某運(yùn)行參數(shù)時(shí),通常不需要直接修改Dorado提供的缺省配置文件,而是增加一個(gè)新的、只包含最小參數(shù)集合的配置文件。 由Dorado引擎對(duì)這些配置文件進(jìn)行疊加是的讀取和處理,此特性可以有效的降低升級(jí)Dorado引擎可能帶來(lái)的額外成本、提供項(xiàng)目的可維護(hù)性。
          • 利用Spring搭建的Dorado引擎-Dorado7自身的服務(wù)就是利用Spring搭建起來(lái),不過(guò)Dorado7并不因此要求用戶的項(xiàng)目一定要使用Spring。
          • 這個(gè)特性使得開(kāi)發(fā)人員有能力利用Spring的特性來(lái)替換幾乎所有Dorado自身的內(nèi)部服務(wù)。
          • 數(shù)據(jù)模型對(duì)象-Dorado7中的數(shù)據(jù)模型對(duì)象既支持全局、私有、匿名等可見(jiàn)性,又支持類似面向?qū)ο蟮睦^承和復(fù)寫。這些特性可以為配置信息的重用和維護(hù)提供很多的便利。
          • 視圖配置文件模板-Dorado7中的視圖配置文件支持多級(jí)模板功能,這非常有利于降低項(xiàng)目的管理和維護(hù)成本。
          • 視圖配置的Import和Export-Dorado7的視圖配置文件允許開(kāi)發(fā)人員利用Import和Export這兩個(gè)標(biāo)記。引入來(lái)自于其他視圖配置文件中的一段配置信息。
          • 用戶自定義控件-Dorado7允許用戶將一段已有的、具有一個(gè)通用性視圖配置信息注冊(cè)為一個(gè)新的自定義控件,并且Dorado的IDE也可以非常方便的支持這一新添加的控件。

          6. Client Edition

          Dorado7提供Dorado7 Client Edition這樣一個(gè)特性的產(chǎn)品打包方式,Dorado7 Client Edition中只包含了Dorado7 Presentation Middleware中的Web客戶端部分(即Javascript和CSS的部分)。

          發(fā)布此版本的目的是為了滿足各種Web項(xiàng)目中前端界面增強(qiáng)的需求。這里提到的Web項(xiàng)目包括基于JEE的Web項(xiàng)目和其他非基于JEE的Web項(xiàng)目,如.Net、PHP等,其定位類似于Ext。 Dorado7 Client Edition從一個(gè)側(cè)面體現(xiàn)出了Dorado7產(chǎn)品在設(shè)計(jì)上的封裝度和靈活性。

          7. 不僅僅是展現(xiàn)中間件

          雖然Dorado7的主要功能都是圍繞展現(xiàn)層這一主題展開(kāi)的,可是我們認(rèn)為Dorado7連同配套的SampleCenter提供給用戶的并不僅僅是對(duì)Web應(yīng)用展現(xiàn)層的簡(jiǎn)單補(bǔ)充。 通過(guò)Dorado7即相關(guān)的示例所承載的是一種非常實(shí)用的Web開(kāi)發(fā)最佳實(shí)踐、一種新的開(kāi)發(fā)模式。

          因此可以說(shuō),使用Dorado您得到的可能并不是僅僅是對(duì)展現(xiàn)層的改良,也是對(duì)整體應(yīng)用開(kāi)發(fā)模式的一次度量和重鑄。

          Dorado演示demo

          代碼生成工具

          地址:https://gitee.com/ldh123/maker

          根據(jù)數(shù)據(jù)庫(kù)結(jié)構(gòu),按照用戶的要求,動(dòng)態(tài)生成可執(zhí)行代碼

          生成的maven結(jié)構(gòu)。spring mvc + spring + mybatis傳統(tǒng)接口

          前端多技術(shù): easyui, bootstrap + jsp, bootstrap + freemarker, javafx ui, flutter(android + ios)

          技術(shù)亮點(diǎn)

          • spring boot + spring + mybatis + mysql + 各種前端
          • 支持mybatis一對(duì)一,一對(duì)多,多對(duì)多關(guān)系查詢,并支持動(dòng)態(tài)選擇是否生成
          • 支持mybatis分頁(yè)查詢,唯一索引刪除,查詢,更新等
          • 支持表中字段枚舉生成
          • 支持表中字段重注釋,并且同步到POJO的注釋上
          • 支持對(duì)表篩選,篩選中的表可以不生成對(duì)應(yīng)的pojo + mybatis mapper + dao + service + controller;
          • 表對(duì)應(yīng)的前端可以動(dòng)態(tài)控制,控制只顯示需要的字段
          • 支持Swagger2
          • 支持vertx + sync + quasar + freemarker
          • web端支持shiro權(quán)限控制
          • 支持metrics.對(duì)系統(tǒng)增加了監(jiān)控
          • 支持flutter版的android + ios

          代碼生成工具1

          代碼生成工具2

          代碼生成工具3

          代碼生成工具4

          代碼生成工具5

          今天的分享就到這吧,我相信還有很多優(yōu)質(zhì)的資源,以后我也會(huì)慢慢的補(bǔ)上,如有知道的小伙伴也可以通過(guò)評(píng)論來(lái)分享。

          點(diǎn)贊+轉(zhuǎn)發(fā)+評(píng)論,多多關(guān)注,以后有好的東西繼續(xù)分享給大家!

          感謝大家支持!

          今天晚上喝了幾兩65°的紅星二鍋頭,坐在沙發(fā)上回想了下我這苦逼的程序員人生,從程序員到高級(jí)工程師的成長(zhǎng)過(guò)程。想了想主題,今天就寫篇《關(guān)于架構(gòu)師那些事》的文章吧。

          總結(jié)

          所有架構(gòu)師都不是自帶光環(huán),都是是從程序員->工程師,然后跟對(duì)一個(gè)好的領(lǐng)導(dǎo)或者好的項(xiàng)目開(kāi)始學(xué)習(xí)框架,然后結(jié)合現(xiàn)有的知識(shí)一步一步磨煉成就了現(xiàn)在架構(gòu)師的光環(huán),從來(lái)就沒(méi)有一步登天的人才,都是從埋坑到填坑的過(guò)程中走過(guò)來(lái)的。

          我曾經(jīng)參與了很多項(xiàng)目的架構(gòu)搭建及技術(shù)框架的選型,利用現(xiàn)在主流的框架搭建過(guò)平臺(tái),也利用一些開(kāi)源的平臺(tái)做過(guò)一些開(kāi)發(fā),其中走過(guò)的坑只有自己知道,那叫一個(gè)“爽”,包括:

          • 前端ui:ligerui、layui、easyui
          • 后臺(tái)框架:struts2/spring mvc、spring、mybatis\hibernate
          • 其它組件:activiti、shiro、quartz等
          • 數(shù)據(jù)庫(kù):mysql、Oracle、SQl Server

          多個(gè)tomcat分布式部署如何共享session,自己也寫過(guò)比較復(fù)雜的功能然后封裝成組件給程序員調(diào)用,例如權(quán)限控制、自定義報(bào)表組件、打印組件、憑證組件等。隨著現(xiàn)在技術(shù)的不斷成熟,不同階梯的程序員也越來(lái)越多,怎樣既能在提高開(kāi)發(fā)效率的前提下,又能節(jié)省企業(yè)的成本,成為了不少科技公司管理的一大難題,特別是剛開(kāi)始創(chuàng)業(yè)的公司。所以我們?cè)谀玫巾?xiàng)目需要架構(gòu)之前,要先了解項(xiàng)目的業(yè)務(wù)和模式,今天跟大家分享下我的一些經(jīng)驗(yàn)。

          1. 首先我們要先了解項(xiàng)目的運(yùn)營(yíng)模式,不同的運(yùn)營(yíng)模式架構(gòu)必然是不一樣的,例如ERP、OA、云平臺(tái)、網(wǎng)上商城、app\小程序\公眾號(hào)后臺(tái)、網(wǎng)站等。
          2. 項(xiàng)目是否要支持跨平臺(tái),linux\windows,業(yè)務(wù)數(shù)據(jù)量能達(dá)到多少,是否要同時(shí)支持SQL Server、mysql、Oracle等主流數(shù)據(jù)庫(kù)
          3. 項(xiàng)目有哪些業(yè)務(wù),某些業(yè)務(wù)是否需要內(nèi)外網(wǎng)隔離訪問(wèn),例如財(cái)務(wù)系統(tǒng)內(nèi)網(wǎng)訪問(wèn),其他系統(tǒng)外網(wǎng)訪問(wèn)等(這個(gè)時(shí)候就需要前置機(jī)程序),是否有高并發(fā)的業(yè)務(wù)等
          4. 項(xiàng)目有哪些復(fù)雜的功能需要攻克的,例如需要工作流、自定義表單、自定義報(bào)表、常規(guī)打印\套打、上傳下載、導(dǎo)入導(dǎo)出等
          5. 前端需要什么樣的風(fēng)格,是否需要支持主流瀏覽器,是否包含一些常用或者特殊的控件,例如表格、樹(shù)、下拉框、表單等
          6. 最后一條就是打算投多少成本,有多少人員,用多少周期去開(kāi)發(fā)

          就暫時(shí)列這么多吧(酒勁上來(lái)了),可以根據(jù)自己的經(jīng)驗(yàn)和業(yè)務(wù)知識(shí)擴(kuò)大下范圍,也可以利用一些現(xiàn)有的快速開(kāi)發(fā)平臺(tái)然后再搭配組裝,所有的架構(gòu)和選型都沒(méi)有對(duì)與錯(cuò),只有適合自己就是最好的。

          分享

          快速開(kāi)發(fā)平臺(tái),就是可以使得開(kāi)發(fā)更為快速的開(kāi)發(fā)平臺(tái)。當(dāng)開(kāi)發(fā)平臺(tái)產(chǎn)生之后,雖然減少了編程人員大量的編程時(shí)間,但是很多開(kāi)發(fā)平臺(tái)的效果并不是很理想,比如說(shuō)某些開(kāi)發(fā)平臺(tái)比較復(fù)雜、難以掌握;有的開(kāi)發(fā)平臺(tái)通用性比較差;有的開(kāi)發(fā)平臺(tái)在時(shí)間上并沒(méi)有得到改善;還有的依然還是需要寫很多代碼等等。這些問(wèn)題的存在促使開(kāi)發(fā)者不斷的摸索、不斷的改進(jìn),到最后越做越成熟,以致于現(xiàn)在市面上出現(xiàn)的大部分開(kāi)發(fā)平臺(tái)效率都非常高,他們改善了以往的產(chǎn)品存在的缺陷,使得開(kāi)發(fā)過(guò)程比以往更簡(jiǎn)潔、編寫代碼更少、開(kāi)發(fā)效率越來(lái)越高。我也整理了一些開(kāi)源的平臺(tái)的資料,如下:

          JeeSite

          GitHub地址:https://github.com/thinkgem/jeesite

          在線演示

          1. 地址:http://demo.jeesite.com/
          2. 賬號(hào):system
          3. 密碼:admin

          JeeSite 是一個(gè) Java EE 企業(yè)級(jí)快速開(kāi)發(fā)平臺(tái),基于經(jīng)典技術(shù)組合(Spring Boot、Spring MVC、Apache Shiro、MyBatis、Beetl、Bootstrap、AdminLTE)采用經(jīng)典開(kāi)發(fā)模式,讓初學(xué)者能夠更快的入門并投入到團(tuán)隊(duì)開(kāi)發(fā)中去。在線代碼生成功能,包括核心模塊如:組織機(jī)構(gòu)、角色用戶、菜單及按鈕授權(quán)、數(shù)據(jù)權(quán)限、系統(tǒng)參數(shù)、內(nèi)容管理、工作流等。采用松耦合設(shè)計(jì);界面無(wú)刷新,一鍵換膚;眾多賬號(hào)安全設(shè)置,密碼策略;在線定時(shí)任務(wù)配置;支持集群,支持SAAS;支持多數(shù)據(jù)源。

          技術(shù)選型

          • 主框架:Spring Boot 2.0、Spring Framework 5.0、Apache Shiro 1.4、J2Cache
          • 持久層:Apache MyBatis 3.4、Hibernate Validation 6.0、Alibaba Druid 1.1
          • 視圖層:Spring MVC 5.0、Beetl 2.7 替換JSP、Bootstrap 3.3、AdminLTE 2.4
          • 前端組件:jQuery 1.12、jqGrid 4.7、layer 3.0、zTree 3.5、jquery-validation
          • 工具組件:Apache Commons、Logback 1.1、Jackson 2.8、POI 3.14、Quartz 2.2
          • 技術(shù)選型詳情:http://jeesite4.mydoc.io/?t=273599

          JeeSite演示demo

          IT榻榻米(收費(fèi))

          官網(wǎng)地址:http://www.itttm.com/

          IT榻榻米是一款java輕量級(jí)智能快速開(kāi)發(fā)平臺(tái),可以幫助您解決項(xiàng)目中90%的重復(fù)工作,讓您更多關(guān)注業(yè)務(wù)邏輯。由于本身輕量級(jí)特性,可根據(jù)自身需求二次開(kāi)發(fā)想要的功能。

          • 使用 Spring boot,主流趨勢(shì),開(kāi)箱即用 。
          • 使用 Maven 多模塊 構(gòu)建項(xiàng)目,方便快捷。
          • 使用 Thymeleaf模板引擎,易使用,夠強(qiáng)大。
          • 使用 安全框架
          • Apache Shiro,安全可靠。
          • websocket實(shí)時(shí)聊天,七牛云,短信通知...

          IT榻榻米演示demo

          IT榻榻米套餐

          JavaFast(收費(fèi))

          官網(wǎng)地址:http://www.javafast.cn/

          • 基礎(chǔ)架構(gòu):采用 SpringMVC + MyBatis + BootStrap + Apache Shiro + Ehcache 基礎(chǔ)架構(gòu)
          • 輕標(biāo)準(zhǔn)化:簡(jiǎn)單功能由代碼生成器生成使用,復(fù)雜業(yè)務(wù)采用表單自定義,只需要寫極少代碼,即可實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯
          • 高效穩(wěn)定:經(jīng)過(guò)了專業(yè)壓力測(cè)試,百億級(jí)別數(shù)據(jù)性能測(cè)試,保證后臺(tái)數(shù)據(jù)的準(zhǔn)確性和頁(yè)面訪問(wèn)速度和穩(wěn)定性.
          • 代碼生成:支持多種數(shù)據(jù)模型,根據(jù)表生成對(duì)應(yīng)的Entity,Service,Dao,Action,JSP等,增刪改查/排序/導(dǎo)出導(dǎo)入Excel/權(quán)限控制/功能生成直接使用。生成前端代碼、生成后端代碼、生成高性能SQL
          • 多種UI支持:系統(tǒng)支持多種風(fēng)格的自動(dòng)切換,可滿足企業(yè)對(duì)UI的美觀要求 .Bootstrap前端框架、支持手機(jī)或平板、集成企業(yè)微信
          • 簡(jiǎn)易報(bào)表配置:支持報(bào)表在線配置,通過(guò)簡(jiǎn)單配置SQL語(yǔ)句即可實(shí)現(xiàn)圖形報(bào)表展示。SQL配置、圖形報(bào)表、數(shù)據(jù)列表

          JavaFast演示demo

          Jeecg(商業(yè)收費(fèi))

          官網(wǎng)地址:http://www.jeecg.org/

          演示地址:http://demo.jeecg.org/loginController.do?login

          JEECG (J2EE Code Generation)是一款基于代碼生成器的免費(fèi)開(kāi)源的快速開(kāi)發(fā)平臺(tái)。使用JEECG可以簡(jiǎn)單快速地開(kāi)發(fā)出企業(yè)級(jí)的Web應(yīng)用系統(tǒng)。

          隨著WEB UI框架(EasyUi/Jquery UI/Ext)等的逐漸成熟,系統(tǒng)界面逐漸實(shí)現(xiàn)統(tǒng)一化,代碼生成器也可以生成統(tǒng)一規(guī)范的界面!代碼生成+手工MERGE半智能開(kāi)發(fā)將是新的趨勢(shì),單表數(shù)據(jù)模型和一對(duì)多數(shù)據(jù)模型的增刪改查功能直接生成使用,可節(jié)省50%工作量,快速提高開(kāi)發(fā)效率!

          Java編程有很多重復(fù)機(jī)械代碼,生成器可以幫助解決50%的重復(fù)工作,讓開(kāi)發(fā)更多關(guān)注業(yè)務(wù)邏輯,從而實(shí)現(xiàn)代碼生成+手工merge的半智能開(kāi)發(fā)!JEECG智能框架可以有效解決信息孤島問(wèn)題,生成統(tǒng)一代碼、統(tǒng)一規(guī)范、統(tǒng)一設(shè)計(jì)思路,使你能在這個(gè)平臺(tái)上,快速開(kāi)發(fā)出高效高質(zhì)量代碼,縮短項(xiàng)目開(kāi)發(fā)周期。

          平臺(tái)亮點(diǎn)

          • 1.采用主流框架,容易上手; 代碼生成器依賴性低,很方便的擴(kuò)展能力,可完全實(shí)現(xiàn)二次開(kāi)發(fā);
          • 2.開(kāi)發(fā)效率很高,采用代碼生成器,單表數(shù)據(jù)模型和一對(duì)多(父子表)數(shù)據(jù)模型,增刪改查功能自動(dòng)生成,菜單配置直接使用;
          • 3.頁(yè)面校驗(yàn)自動(dòng)生成(必須輸入、數(shù)字校驗(yàn)、金額校驗(yàn)、時(shí)間控件等);
          • 4.封裝完善的用戶基礎(chǔ)權(quán)限、強(qiáng)大的數(shù)據(jù)權(quán)限、和數(shù)據(jù)字典等基礎(chǔ)功能,直接使用無(wú)需修改
          • 5.常用共通封裝,各種工具類(定時(shí)任務(wù),短信接口,郵件發(fā)送,Excel導(dǎo)出等),基本滿足80%項(xiàng)目需求
          • 6.集成簡(jiǎn)易報(bào)表工具,圖像報(bào)表和數(shù)據(jù)導(dǎo)出非常方便,可極其方便的生成pdf、excel、word等報(bào)表;
          • 7.集成工作流activiti,并實(shí)現(xiàn)了只需在頁(yè)面配置流程轉(zhuǎn)向,可極大的簡(jiǎn)化jbpm工作流的開(kāi)發(fā);用jbpm的流程設(shè)計(jì)器畫出了流程走向,一個(gè)工作流基本就完成了,只需寫很少量的java代碼;
          • 8.UI快速開(kāi)發(fā)庫(kù),針對(duì)WEB UI進(jìn)行標(biāo)準(zhǔn)式封裝,頁(yè)面統(tǒng)一采用自定義標(biāo)簽實(shí)現(xiàn)功能:列表數(shù)據(jù)展現(xiàn)、頁(yè)面校驗(yàn)等,標(biāo)簽使用簡(jiǎn)單清晰且便于維護(hù)
          • 9.在線流程設(shè)計(jì),采用開(kāi)源Activiti流程引擎,實(shí)現(xiàn)在線畫流程,自定義表單,表單掛靠,業(yè)務(wù)流轉(zhuǎn)
          • 10.查詢過(guò)濾器:查詢功能自動(dòng)生成,后臺(tái)動(dòng)態(tài)拼SQL追加查詢條件;支持多種匹配方式(全匹配/模糊查詢/包含查詢/不匹配查詢);
          • 11.多數(shù)據(jù)源:及其簡(jiǎn)易的使用方式,在線配置數(shù)據(jù)源配置,便捷的從其他數(shù)據(jù)抓取數(shù)據(jù);
          • 12.國(guó)際化:支持多語(yǔ)言,開(kāi)發(fā)國(guó)際化項(xiàng)目非常方便;
          • 13.數(shù)據(jù)權(quán)限(精細(xì)化數(shù)據(jù)權(quán)限控制,控制到行級(jí),列表級(jí),表單字段級(jí),實(shí)現(xiàn)不同人看不同數(shù)據(jù),不同人對(duì)同一個(gè)頁(yè)面操作不同字段
          • 14.多種首頁(yè)風(fēng)格切換,支持自定義首頁(yè)風(fēng)格。(經(jīng)典風(fēng)格、Shortcut風(fēng)格、ACE bootstrap風(fēng)格、云桌面風(fēng)格)
          • 15.在線配置報(bào)表(無(wú)需編碼,通過(guò)在線配置方式,實(shí)現(xiàn)曲線圖,柱狀圖,數(shù)據(jù)等報(bào)表)
          • 16.簡(jiǎn)易Excel導(dǎo)入導(dǎo)出,支持單表導(dǎo)出和一對(duì)多表模式導(dǎo)出,生成的代碼自帶導(dǎo)入導(dǎo)出功能
          • 17.自定義表單,支持用戶自定義表單布局,支持單表,一對(duì)多表單、支持select、radio、checkbox、textarea、date、popup、列表、宏等控件

          平臺(tái)架構(gòu)

          • JEECG v2 系列版本采用主流S2SH框架,容易上手;代碼生成器依賴性低,很方便的擴(kuò)展能力,可完全實(shí)現(xiàn)二次開(kāi)發(fā);
          • JEECG V3 系列版本采用SpringMVC+Hibernate+Spring jdbc架構(gòu)技術(shù),
          • 開(kāi)發(fā)效率很高,單表數(shù)據(jù)模型和一對(duì)多(父子表)數(shù)據(jù)模型的增刪改查自動(dòng)生成,功能直接使用;
          • 頁(yè)面校驗(yàn)自動(dòng)生成(必須輸入、數(shù)字校驗(yàn)、金額校驗(yàn)、時(shí)間空間等);
          • 封裝完善的用戶權(quán)限和數(shù)據(jù)字典等基礎(chǔ)功能,直接使用無(wú)需修改
          • 常用共通封裝,各種工具類(定時(shí)任務(wù),短信接口,郵件發(fā)送,Excel導(dǎo)出等),基本 滿足80%項(xiàng)目需求
          • 集成簡(jiǎn)易報(bào)表工具,圖像報(bào)表和數(shù)據(jù)導(dǎo)出非常方便,可極其方便的生成pdf、excel、word等報(bào)表;
          • 集成工作流jbpm,并實(shí)現(xiàn)了只需在頁(yè)面配置流程轉(zhuǎn)向,可極大的簡(jiǎn)化jbpm工作流的開(kāi)發(fā);用jbpm的流程設(shè)計(jì)器畫出了流程走向,一個(gè)工作流基本就完成了,只需寫很少量的java代碼

          Jeecg演示demo1

          Jeecg演示demo2

          EOVA

          官網(wǎng)地址:http://www.eova.cn/

          技術(shù)亮點(diǎn)

          • 以元數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù)為核心思想
          • 使用了極速框架JFinal,站在巨人的肩膀上
          • 以O(shè)OP思想結(jié)合EasyUI和Bootstrap樣式自創(chuàng)EovaUI
          • 使用Beetl融合Java和Script
          • 兼容主流數(shù)據(jù)庫(kù)Mysql、Oracle、Postgre...
          • 可以一鍵完成CRUD,但不僅限于CRUD
          • 靈動(dòng)迅捷,多快好省,不影響你你實(shí)現(xiàn)任何功能

          EOVA演示demo

          Dorado

          官網(wǎng)地址:http://bsdn.org/projects/dorado7

          演示地址:http://bsdn.org/projects/dorado7/deploy/sample-center/com.bstek.dorado.sample.Main.d

          Dorado Presentation Middleware(即Dorado展現(xiàn)中間件,以下簡(jiǎn)稱Dorado)致力于輔助Web應(yīng)用中表現(xiàn)層的開(kāi)發(fā)過(guò)程。Dorado主要可以為您帶來(lái)如下兩方面的使用價(jià)值:

          • 更加美觀、更加人性化的Web操作界面。
          • 更加高效的表現(xiàn)層開(kāi)發(fā)效率。

          Dorado Presentation Middleware產(chǎn)品包含3個(gè)主要的功能部分:Web客戶端、服務(wù)端引擎、IDE集成開(kāi)發(fā)工具。(見(jiàn)下面插圖)

          • Web客戶端-主要利用Javascript搭建的純?yōu)g覽器前端展現(xiàn)系統(tǒng),可支持目前較為常見(jiàn)的所有主流瀏覽器。
          • 服務(wù)端引擎-用于輔助Dorado Web客戶端的自動(dòng)生成,客戶端與服務(wù)端的數(shù)據(jù)通信、狀態(tài)同步,以及Dorado展現(xiàn)層與后臺(tái)系統(tǒng)的集成等。
          • IDE集成開(kāi)發(fā)工具-Eclipse插件形式的集成開(kāi)發(fā)工具。用于輔助開(kāi)發(fā)人員對(duì)Dorado界面及其他相關(guān)配置進(jìn)行快速的定制。

          主要功能特點(diǎn)

          1. 全新的Web客戶端

          Dorado7提供了全新打造的Web客戶端,這包括全新的基礎(chǔ)運(yùn)行框架和全新的控件庫(kù)。較之Dorado的前作,新的Web客戶端將帶來(lái)如下的增強(qiáng):

          • 支持所有主流瀏覽器-Dorado7將兼容所有主流的瀏覽器,包括IE、Chrome、Firefox、Safari、Opera以及以這5種瀏覽器為內(nèi)核的其他瀏覽器。 結(jié)合目前各瀏覽器在性能、穩(wěn)定性、功能等各方面的因素,我們推薦用戶使用Chrome作為首選的瀏覽器。
          • 更加豐富的控件庫(kù)-初始包含超過(guò)60個(gè)的界面控件,并且此數(shù)量還會(huì)不斷的提高。
          • 更加Ajax-由于在設(shè)計(jì)之初給予了周全的考慮,因此Dorado7可以在幾乎所有的交互過(guò)程中以異步請(qǐng)求替代同步請(qǐng)求,這將使界面的操作體驗(yàn)獲得極大的提升。 同時(shí),Dorado7中還提供了獨(dú)特的Ajax請(qǐng)求自動(dòng)合并技術(shù),以盡可能減少與服務(wù)端之間的實(shí)際交互次數(shù),進(jìn)一步提高界面運(yùn)行效率。
          • 管理庫(kù)文件,實(shí)現(xiàn)按需裝載-Dorado7提供了以資源包的形式對(duì)Javascript和CSS文件進(jìn)行管理的功能,不但系統(tǒng)內(nèi)部的庫(kù)文件以此種方式進(jìn)行管理,用戶也可以將自己的庫(kù)文件納入這一管理機(jī)制。 通過(guò)這一功能,用戶可以定義各資源包之間的依賴關(guān)系、實(shí)現(xiàn)庫(kù)文件的運(yùn)行時(shí)自動(dòng)合并、以及庫(kù)文件的按需裝載。 這可以在性能優(yōu)化、項(xiàng)目維護(hù)等方面帶來(lái)諸多好處。
          • 強(qiáng)大的客戶端調(diào)試器-新的客戶端調(diào)試器可以提供分級(jí)日志、API測(cè)試、頁(yè)面結(jié)構(gòu)剖析等調(diào)試功能。 借助新的調(diào)試器您甚至還可以隨時(shí)查看/修改任意Dorado對(duì)象的屬性值、分析DataSet中的實(shí)時(shí)數(shù)據(jù)。配合Dorado7中全新的異常處理機(jī)制,相比前作開(kāi)發(fā)人員將擁有更加豐富的調(diào)試手段。
          • 完整的拖拽功能支持-Dorado7中所有的控件都將支持拖拽操作的屬性、事件和API接口。

          2. 立體數(shù)據(jù)模型

          “立體數(shù)據(jù)模型”因其相對(duì)于平面數(shù)據(jù)模型(二維數(shù)據(jù)模型)而得名。即指Dorado7推翻了Dorado前作中以DataSet為媒介、以二維表形式對(duì)于展現(xiàn)數(shù)據(jù)進(jìn)行封裝和管理的設(shè)計(jì)思路。 Dorado7不再局限數(shù)據(jù)必須以二維表結(jié)構(gòu)與DataSet對(duì)接,而是可以支持非常自由的數(shù)據(jù)形式。并且也不再提供專用的數(shù)據(jù)封裝對(duì)象。 這些變化使得展現(xiàn)層中的數(shù)據(jù)更加純粹、更加貼切真實(shí)的業(yè)務(wù)含義。自然,也使開(kāi)發(fā)變得更加便利、更加生動(dòng)。

          “立體數(shù)據(jù)模型”是Dorado7相對(duì)于前作最重要的概念變化,也是Dorado7最為核心的設(shè)計(jì)思想。 以上的寥寥數(shù)語(yǔ)并不足以闡明這一抽象概念,請(qǐng)參考 Dorado7方法論 中關(guān)于“立體數(shù)據(jù)模型”的更多論述。

          3. 沒(méi)有JSP的Web

          秉承了Dorado產(chǎn)品的一貫風(fēng)格,Dorado7仍以XML形式的視圖配置文件作為定義Web界面的主要手段。 不過(guò),在Dorado7中這里的視圖配置文件被賦予了更多的內(nèi)涵,視圖配置文件已經(jīng)可以完整的描述Web界面的所有特性,JSP不再是Dorado7的必選項(xiàng)。 在大多數(shù)情況下,直接訪問(wèn)一個(gè)視圖配置文件就可以得到一個(gè)功能完整的Web界面。

          可能很多開(kāi)發(fā)人員對(duì)于此特性會(huì)感到一絲不安,出于某些技術(shù)人員習(xí)慣以及頁(yè)面需求等原因,開(kāi)發(fā)人員可能仍然需要以HTML形式來(lái)實(shí)現(xiàn)頁(yè)面的布局。 Dorado7同樣對(duì)此種使用方式提供了完善的支持。開(kāi)發(fā)者可以很方便的使用JSP、Velocity或者其他類似的技術(shù)來(lái)為視圖配置文件定義布局方式。 并且,新的開(kāi)發(fā)方式讓美工人員與開(kāi)發(fā)人員的合作變得更為可行和便利。以JSP為例,Dorado7不再引入繁多的Taglib標(biāo)簽庫(kù),而是以純HTML方式的占位符來(lái)輔助Web頁(yè)面的布局。

          4. 智能方法適配

          “智能方法適配”是指允許開(kāi)發(fā)人員盡可能按照自己的意愿、業(yè)務(wù)的需要來(lái)定義他們的業(yè)務(wù)方法,然后由Dorado引擎自動(dòng)根據(jù)場(chǎng)景、參數(shù)名、參數(shù)類型等因素來(lái)判斷應(yīng)當(dāng)怎樣調(diào)用該業(yè)務(wù)方法。 “智能方法適配”是Dorado7提供的一個(gè)非常有特色的功能,提供此功能的主要目的是盡量減少開(kāi)發(fā)人員所需要掌握的Dorado API,讓業(yè)務(wù)方法的代碼更加“業(yè)務(wù)化”,更加易于閱讀。

          通過(guò)“智能方法適配”也可以很好的體驗(yàn)出Dorado7所提倡的“基于約定而非配置”進(jìn)行開(kāi)發(fā)的理念。在實(shí)際的應(yīng)用場(chǎng)景中大部分實(shí)現(xiàn)了Dorado前端的功能中可能并不需要引入任何Dorado的API。

          5. 擴(kuò)展和重用

          為提高Dorado7產(chǎn)品的擴(kuò)展性和可重用性我們?cè)贒orado7中提供了很多新的特性,這些特性主要包括:

          • 疊加式配置-當(dāng)用于需要設(shè)置或改變Dorado中的某運(yùn)行參數(shù)時(shí),通常不需要直接修改Dorado提供的缺省配置文件,而是增加一個(gè)新的、只包含最小參數(shù)集合的配置文件。 由Dorado引擎對(duì)這些配置文件進(jìn)行疊加是的讀取和處理,此特性可以有效的降低升級(jí)Dorado引擎可能帶來(lái)的額外成本、提供項(xiàng)目的可維護(hù)性。
          • 利用Spring搭建的Dorado引擎-Dorado7自身的服務(wù)就是利用Spring搭建起來(lái),不過(guò)Dorado7并不因此要求用戶的項(xiàng)目一定要使用Spring。
          • 這個(gè)特性使得開(kāi)發(fā)人員有能力利用Spring的特性來(lái)替換幾乎所有Dorado自身的內(nèi)部服務(wù)。
          • 數(shù)據(jù)模型對(duì)象-Dorado7中的數(shù)據(jù)模型對(duì)象既支持全局、私有、匿名等可見(jiàn)性,又支持類似面向?qū)ο蟮睦^承和復(fù)寫。這些特性可以為配置信息的重用和維護(hù)提供很多的便利。
          • 視圖配置文件模板-Dorado7中的視圖配置文件支持多級(jí)模板功能,這非常有利于降低項(xiàng)目的管理和維護(hù)成本。
          • 視圖配置的Import和Export-Dorado7的視圖配置文件允許開(kāi)發(fā)人員利用Import和Export這兩個(gè)標(biāo)記。引入來(lái)自于其他視圖配置文件中的一段配置信息。
          • 用戶自定義控件-Dorado7允許用戶將一段已有的、具有一個(gè)通用性視圖配置信息注冊(cè)為一個(gè)新的自定義控件,并且Dorado的IDE也可以非常方便的支持這一新添加的控件。

          6. Client Edition

          Dorado7提供Dorado7 Client Edition這樣一個(gè)特性的產(chǎn)品打包方式,Dorado7 Client Edition中只包含了Dorado7 Presentation Middleware中的Web客戶端部分(即Javascript和CSS的部分)。

          發(fā)布此版本的目的是為了滿足各種Web項(xiàng)目中前端界面增強(qiáng)的需求。這里提到的Web項(xiàng)目包括基于JEE的Web項(xiàng)目和其他非基于JEE的Web項(xiàng)目,如.Net、PHP等,其定位類似于Ext。 Dorado7 Client Edition從一個(gè)側(cè)面體現(xiàn)出了Dorado7產(chǎn)品在設(shè)計(jì)上的封裝度和靈活性。

          7. 不僅僅是展現(xiàn)中間件

          雖然Dorado7的主要功能都是圍繞展現(xiàn)層這一主題展開(kāi)的,可是我們認(rèn)為Dorado7連同配套的SampleCenter提供給用戶的并不僅僅是對(duì)Web應(yīng)用展現(xiàn)層的簡(jiǎn)單補(bǔ)充。 通過(guò)Dorado7即相關(guān)的示例所承載的是一種非常實(shí)用的Web開(kāi)發(fā)最佳實(shí)踐、一種新的開(kāi)發(fā)模式。

          因此可以說(shuō),使用Dorado您得到的可能并不是僅僅是對(duì)展現(xiàn)層的改良,也是對(duì)整體應(yīng)用開(kāi)發(fā)模式的一次度量和重鑄。

          Dorado演示demo

          代碼生成工具

          地址:https://gitee.com/ldh123/maker

          根據(jù)數(shù)據(jù)庫(kù)結(jié)構(gòu),按照用戶的要求,動(dòng)態(tài)生成可執(zhí)行代碼

          生成的maven結(jié)構(gòu)。spring mvc + spring + mybatis傳統(tǒng)接口

          前端多技術(shù): easyui, bootstrap + jsp, bootstrap + freemarker, javafx ui, flutter(android + ios)

          技術(shù)亮點(diǎn)

          • spring boot + spring + mybatis + mysql + 各種前端
          • 支持mybatis一對(duì)一,一對(duì)多,多對(duì)多關(guān)系查詢,并支持動(dòng)態(tài)選擇是否生成
          • 支持mybatis分頁(yè)查詢,唯一索引刪除,查詢,更新等
          • 支持表中字段枚舉生成
          • 支持表中字段重注釋,并且同步到POJO的注釋上
          • 支持對(duì)表篩選,篩選中的表可以不生成對(duì)應(yīng)的pojo + mybatis mapper + dao + service + controller;
          • 表對(duì)應(yīng)的前端可以動(dòng)態(tài)控制,控制只顯示需要的字段
          • 支持Swagger2
          • 支持vertx + sync + quasar + freemarker
          • web端支持shiro權(quán)限控制
          • 支持metrics.對(duì)系統(tǒng)增加了監(jiān)控
          • 支持flutter版的android + ios

          代碼生成工具1

          代碼生成工具2

          代碼生成工具3

          代碼生成工具4

          代碼生成工具5

          今天的分享就到這吧,我相信還有很多優(yōu)質(zhì)的資源,以后我也會(huì)慢慢的補(bǔ)上,如有知道的小伙伴也可以通過(guò)評(píng)論來(lái)分享。

          點(diǎn)贊+轉(zhuǎn)發(fā)+評(píng)論,多多關(guān)注,以后有好的東西繼續(xù)分享給大家!

          感謝大家支持!

          平臺(tái)級(jí)項(xiàng)目開(kāi)發(fā)中,選型和設(shè)計(jì)的重要性不言而喻,設(shè)計(jì)是軟件開(kāi)發(fā)的先導(dǎo),是對(duì)系統(tǒng)整體結(jié)構(gòu)和功能的規(guī)劃和布局,在對(duì)醫(yī)療軟件業(yè)務(wù)的深刻理解之上,分析系統(tǒng)功能和業(yè)務(wù)流程,確定合適的技術(shù)架構(gòu)和數(shù)據(jù)模型,定義接口規(guī)范,最終才能達(dá)成目標(biāo)。

          本文在技術(shù)選型上遵循的思路:用成熟的互聯(lián)網(wǎng)技術(shù)逐漸升級(jí)改造醫(yī)療中的傳統(tǒng)技術(shù)體系。互聯(lián)網(wǎng)技術(shù)比傳統(tǒng)技術(shù)有更有預(yù)期的發(fā)展性,更活躍的社團(tuán)性,更先進(jìn)的技術(shù)性。有時(shí)候選擇大于努力,充分利用已有的成熟輪子,選型得當(dāng)后續(xù)活干得少。

          代碼未動(dòng),設(shè)計(jì)先行,考慮篇幅的限制,本章節(jié)先概述選型原則和設(shè)計(jì)思路,實(shí)現(xiàn)內(nèi)容在后續(xù)分章節(jié)說(shuō)明。在建設(shè)思路中已經(jīng)勾勒了技術(shù)框架的組成訴求,去掉具體的業(yè)務(wù)模塊部分,區(qū)域醫(yī)療平臺(tái)可以由4個(gè)通用部分組成。

          平臺(tái)設(shè)計(jì)示意圖中的業(yè)務(wù)中臺(tái)包括業(yè)務(wù)開(kāi)發(fā)框架和業(yè)務(wù)協(xié)同框架,數(shù)據(jù)中臺(tái)包括數(shù)倉(cāng)體系和數(shù)據(jù)計(jì)算。這里的數(shù)據(jù)計(jì)算可以是常見(jiàn)的指標(biāo)計(jì)算,標(biāo)簽畫像的體系,成熟的機(jī)器學(xué)習(xí)體系,以及基于LLM構(gòu)建的智能體系,共同支撐上層應(yīng)用,以及醫(yī)療涉眾的使用。

          2.1 開(kāi)發(fā)框架

          醫(yī)療體系業(yè)務(wù)極為龐雜,分為院內(nèi)系統(tǒng)和區(qū)域系統(tǒng),院內(nèi)系統(tǒng)按照國(guó)家衛(wèi)計(jì)委2018年發(fā)布的《全國(guó)醫(yī)院信息化建設(shè)標(biāo)準(zhǔn)與規(guī)范(試行)》明確了醫(yī)院應(yīng)用系統(tǒng)功能多達(dá)200多個(gè),區(qū)域系統(tǒng)也不少,而且業(yè)務(wù)體系更加復(fù)雜。所以在設(shè)計(jì)醫(yī)療業(yè)務(wù)系統(tǒng),需要根據(jù)業(yè)務(wù)場(chǎng)景和數(shù)據(jù)容量,選擇合適的開(kāi)發(fā)框架。以前有很多醫(yī)療體系中有不少老系統(tǒng)基于net設(shè)計(jì),但目前基于信創(chuàng)要求,會(huì)逐漸要求轉(zhuǎn)到自主可控/開(kāi)源體系中。

          業(yè)務(wù)系統(tǒng)可采用B/S架構(gòu),推薦采用Java生態(tài)體系來(lái)建設(shè),以符合信創(chuàng)的要求。根據(jù)項(xiàng)目特點(diǎn)和規(guī)模采用單體結(jié)構(gòu)或微服務(wù)結(jié)構(gòu),業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)框架可以自研腳手架,也可以根據(jù)成熟的開(kāi)源產(chǎn)品進(jìn)行產(chǎn)品化。現(xiàn)在基于Java的開(kāi)發(fā)框架已經(jīng)很成熟,也有成熟度較高的開(kāi)源產(chǎn)品,直接選擇輪子就行。

          2.1.1 單體框架

          如果是10年前,會(huì)推薦JeeSite,不過(guò)之后有部分代碼閉源了。所以現(xiàn)在做單體系統(tǒng),可以是采用JSite,前端用的AdminLTE3 + Beetl3。如果感覺(jué)界面不怎么順手,可以用TopJUI前端框架來(lái)改造前端,基于高版本的jQuery EasyUI構(gòu)建,適用于MES、ERP、HIS、CRM、OA等后臺(tái)系統(tǒng)的開(kāi)發(fā),而且界面已經(jīng)脫離了EasyUI早期版本的經(jīng)典式樣,有了明顯現(xiàn)代化的前端呈現(xiàn)。講到這里,為dorado前端框架感到惋惜,逐漸小眾化了。

          單體系統(tǒng)的開(kāi)發(fā)和部署都很方便,還可以搭建Svn/Git + Jenkins + Maven + SonarQube實(shí)現(xiàn)日構(gòu)建系統(tǒng),規(guī)范化開(kāi)發(fā)。如果數(shù)據(jù)量在增大,可以采用讀寫分離以及分庫(kù)分表方式,再配置Redis進(jìn)行熱點(diǎn)數(shù)據(jù)緩存提升系統(tǒng)性能,實(shí)現(xiàn)科室級(jí)的項(xiàng)目快速開(kāi)發(fā)。如果這是大科室,訪問(wèn)量有點(diǎn)多,可以部署個(gè)nginx進(jìn)行粘性會(huì)話配置,實(shí)現(xiàn)系統(tǒng)的擴(kuò)展。

          在單體項(xiàng)目開(kāi)發(fā)中,系統(tǒng)同樣可以分為前端和后端兩大部分,之所以保留這套體系是因?yàn)橛泻芏嗫剖壹?jí)別的項(xiàng)目適合這種模式,而且架構(gòu)簡(jiǎn)單,適合熟練業(yè)務(wù)的開(kāi)發(fā)人員在前后端開(kāi)發(fā)時(shí)同步搞定,避免前后端拆開(kāi)之后的人力損耗,而且借鑒dubbo + zookeeper體系,也可以拆分為前后端模式,實(shí)現(xiàn)急速開(kāi)發(fā)和快速拆分。

          1. 前端:前端展現(xiàn)層,基于springMVC + bootstrap + css展現(xiàn)框架
          2. 后端:控制層 + 業(yè)務(wù)邏輯層 + 數(shù)據(jù)訪問(wèn)層 + 數(shù)據(jù)庫(kù)層

          代碼生成

          中后臺(tái)的應(yīng)用有大量基于表的常規(guī)增刪改查功能,可以采用代碼生成方式來(lái)生成前端和后端代碼,并符合預(yù)設(shè)的目錄和代碼規(guī)范結(jié)構(gòu),簡(jiǎn)化開(kāi)發(fā)工作量,以便快速部署。

          從歷史的角度來(lái)看,代碼生成只是平臺(tái)業(yè)務(wù)開(kāi)發(fā)體系的初級(jí)階段,基于模版按照預(yù)設(shè)規(guī)則生成圍繞表的增刪改查的通用代碼。在表單設(shè)計(jì)器/低代碼平臺(tái)中有了更高級(jí)方式,圍繞頁(yè)面表單生成相應(yīng)邏輯的業(yè)務(wù)處理,設(shè)計(jì)者擁有更多的處理選項(xiàng)。

          2.1.2 前后端分離

          大江東去浪淘盡,曾經(jīng)的單體架構(gòu)也從小甜甜變成了牛夫人。基于現(xiàn)在的技術(shù)體系一般起手就是前后端分離的體系,前端從springMVC改成了Vue方式。不是說(shuō)springMVC不行,而是在互聯(lián)網(wǎng)模式中從支持微服務(wù)體系、前端處理性能上看不是最合適的選擇。

          采用這種開(kāi)發(fā)模式下,人力成本會(huì)提升很多,醫(yī)療行業(yè)需要有多年經(jīng)驗(yàn)的業(yè)務(wù)開(kāi)發(fā)人員參與其中,這些從遠(yuǎn)古時(shí)代存留下來(lái)的業(yè)務(wù)開(kāi)發(fā)人員熟悉的是單體技術(shù)棧,所以需要給他們配置一個(gè)前端開(kāi)發(fā)人員。

          如果是新建前后端分離的項(xiàng)目直接基于若依或者ruoyi-vue-pro作為基礎(chǔ)開(kāi)發(fā)框架。推薦ruoyi-vue-pro,基礎(chǔ)框架的源碼全公開(kāi),設(shè)計(jì)良好的dependencies,基于Maven Module技術(shù)體系的常用業(yè)務(wù)功能擴(kuò)展,集成了mybaits-plus,redis,mq,job等。另外ruoyi-vue-pro有springCloud的微服務(wù)版本,這樣方便業(yè)務(wù)的遷移和升級(jí),只是要注意2個(gè)版本的module擴(kuò)展不完全一樣,有細(xì)微區(qū)別。


          1、項(xiàng)目結(jié)構(gòu)

          RuoYi-Vue 全新 Pro 版本,優(yōu)化重構(gòu)所有功能。基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + UniApp 微信小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、數(shù)據(jù)權(quán)限、SaaS 多租戶、Flowable 工作流、三方登錄、支付、短信、商城等功能。

          有3種前端(越靠后顏值越高)

          1. yudao-ui-admin-vue2,基于 Vue2 + element-ui 實(shí)現(xiàn)的管理后臺(tái)
          2. yudao-ui-admin-vue3,基于 Vue3 + element-plus 實(shí)現(xiàn)的管理后臺(tái)
          3. yudao-ui-admin-vben,基于 Vue3 + vben(ant-design-vue) 實(shí)現(xiàn)的管理后臺(tái)

          2、基于mybatis-flex的改造

          原版ruoyi-vue-pro采用的是mybatis-plus作為orm,也是大多數(shù)腳手架的選擇,而且ruoyi-vue-pro在mybatis-plus的基礎(chǔ)上做了功能的提煉,抽象了一些常用的處理擴(kuò)展作為抽象類方便使用。只是本人在使用中發(fā)現(xiàn)mybatis-flex提供了相似功能,并且有更通用的表達(dá)。下面的代碼就是對(duì)比效果,被注解的是mybatis-plus的擴(kuò)展寫法,外面的是基于mybatis-flex寫法,純個(gè)人喜好。

          @Mapper
           public interface DeptMapper extends BaseMapper<DeptEntity> {
             /*default List<DeptEntity> selectList(DeptListReqVO reqVO) {
               return selectList(new LambdaQueryWrapperX<DeptEntity>()
                   .likeIfPresent(DeptEntity::getName, reqVO.getName())
                   .eqIfPresent(DeptEntity::getStatus, reqVO.getStatus()));
             }*/
             default List<DeptEntity> selectList(DeptListReqVO reqVO) {
               return selectListByQuery( QueryWrapper.*create*()
                   .where(*DEPT_ENTITY*.NAME.like(reqVO.getName(), If::*notNull*))
                   .and(*DEPT_ENTITY*.STATUS.eq(reqVO.getStatus(), If::*notNull*)) );
             }
             /*default DeptEntity selectByParentIdAndName(Long parentId, String name) {
               return selectOne(DeptEntity::getParentId, parentId, DeptEntity::getName, name);
             }*/
             default DeptEntity selectByParentIdAndName(Long parentId, String name) {
               return selectOneByQuery(QueryWrapper.*create*()
                   .where(*DEPT_ENTITY*.PARENT_ID.eq(parentId)).and(*DEPT_ENTITY*.NAME.eq(name)));
             }
           
             /*default Long selectCountByParentId(Long parentId) {
               return selectCount(DeptEntity::getParentId, parentId);
             }*/
             default Long selectCountByParentId(Long parentId) {
               return selectCountByCondition(*DEPT_ENTITY*.PARENT_ID.eq(parentId));
             }
           }


          2.1.3 微服務(wù)框架

          采用前后端分離的項(xiàng)目,在業(yè)務(wù)使用量起來(lái)后,可以方便的遷移到微服務(wù)體系,尤其是alibaba的微服務(wù)體系。注意不是使用了微服務(wù)技術(shù)就是微服務(wù)平臺(tái),有一些平臺(tái)雖然使用了微服務(wù)技術(shù)(SpringCloud 或ServiceComb),但只是實(shí)現(xiàn)了平臺(tái)本身架構(gòu)是微服務(wù)的,而基于平臺(tái)二次開(kāi)發(fā)的項(xiàng)目卻是單體的,要看平臺(tái)是否支持用戶自行擴(kuò)展新的服務(wù),且可以做到各服務(wù)之間的數(shù)據(jù)庫(kù)隔離,這樣做出來(lái)的項(xiàng)目才能稱得上微服務(wù)項(xiàng)目。

          如果是采用ruoyi-vue-pro遷移到y(tǒng)udao-cloud,則更加方便,修改若干配置即可。如果在開(kāi)發(fā)過(guò)程中沒(méi)有完全遵循微服務(wù)的劃分,有模塊之間的橫向api調(diào)用,則需要改成微服務(wù)模式。從功能上看和ruoyi-vue-pro基本類似,采用了alibaba的springCloud技術(shù)棧,增加了nacos,racketMQ,gateway等微服務(wù)基礎(chǔ)組件,同時(shí)把Job和事務(wù)改成了xxl-job和seata。


          表單建模器

            之前的代碼生成器的模式比較固定:要么從數(shù)據(jù)庫(kù)讀取已經(jīng)定義好的表結(jié)構(gòu),工具生成實(shí)體部分代碼,或者是與框架強(qiáng)相關(guān)的不同層次的服務(wù)代碼;要么從配置文件,再反向生成數(shù)據(jù)庫(kù)代碼或者業(yè)務(wù)相關(guān)代碼;還有可能先定義實(shí)體類,再生成其他部分代碼。生成代碼之后,再拷貝到具體的代碼目錄。

            在腳手架開(kāi)發(fā)的基礎(chǔ)上,可以套用一個(gè)表單建模器,給后端開(kāi)發(fā)人員提供一個(gè)快速界面開(kāi)發(fā)的選項(xiàng)。基于表單建模器的開(kāi)發(fā):首先需要面向業(yè)務(wù)實(shí)現(xiàn)表單與實(shí)體模型之間的映射;其次運(yùn)行時(shí)CRUD等與數(shù)據(jù)存儲(chǔ)相關(guān)操作,以及自動(dòng)生成Id、自動(dòng)添加審計(jì)日志、動(dòng)態(tài)生成各種Sql語(yǔ)句、自動(dòng)方法驗(yàn)證等;然后可以定義與實(shí)體模型相關(guān)的動(dòng)態(tài)方法執(zhí)行,包括通用的增冊(cè)改查、分頁(yè)獲取數(shù)據(jù)等、執(zhí)行自定義的Sql語(yǔ)句,還可以執(zhí)行反射或者微服務(wù)調(diào)用定義等。

          表單建模器能夠快速創(chuàng)建常規(guī)的業(yè)務(wù)模塊,可以把常規(guī)的業(yè)務(wù)功能做成模板,方便快速的創(chuàng)建業(yè)務(wù)模塊功能,選擇一個(gè)模板之后,會(huì)將模板對(duì)應(yīng)的表單、子表單、子視圖、控件等所有自定義表單相關(guān)的定義全部自動(dòng)創(chuàng)建出來(lái),通過(guò)底層一套schema或DSL規(guī)范約束,生成JSON Schema;表單引擎通過(guò)加載JSON Schema渲染出表單。

          不過(guò)要實(shí)現(xiàn)復(fù)雜的業(yè)務(wù),單純的表單建模器不一定合適,本身醫(yī)療體系中面向患者的業(yè)務(wù)處理就很復(fù)雜,建模器的預(yù)設(shè)組件是覆蓋不了全部的醫(yī)療業(yè)務(wù),強(qiáng)行匹配會(huì)適得其反。可以根據(jù)醫(yī)療業(yè)務(wù)的特點(diǎn),把系統(tǒng)分為面向管理者的中后臺(tái)業(yè)務(wù)和面向患者的前臺(tái)業(yè)務(wù),中后臺(tái)業(yè)務(wù)可以采用代碼生成、表單建模、或者低代碼平臺(tái);而前臺(tái)業(yè)務(wù)還是需要前端開(kāi)發(fā)人員根據(jù)實(shí)際業(yè)務(wù)去設(shè)計(jì),根據(jù)業(yè)務(wù)特點(diǎn)去適配界面。


          關(guān)于MIT協(xié)議

          ruoyi-vue-pro和yudao-cloud采用的MIT協(xié)議,這是一種非常寬松的開(kāi)源許可證,允許軟件在保留版權(quán)和許可證聲明的前提下,免費(fèi)使用、復(fù)制、修改、合并、出版、分發(fā)、再授權(quán)和銷售等。該許可證適用于幾乎所有類型的軟件,包括商業(yè)軟件和專有軟件。


          2.1.4 低代碼平臺(tái)

          基于前后端分離或者微服務(wù)體系的腳手架,為醫(yī)療業(yè)務(wù)的實(shí)現(xiàn)提供了良好的基礎(chǔ),只是有一類中后臺(tái)管理的業(yè)務(wù),涉及大量的基于表的增刪改查業(yè)務(wù)和業(yè)務(wù)審批的業(yè)務(wù),相對(duì)業(yè)務(wù)比較規(guī)范,可以采用低代碼平臺(tái)實(shí)現(xiàn)相應(yīng)的業(yè)務(wù),最終形成中后臺(tái)管理業(yè)務(wù)由低代碼平臺(tái)實(shí)現(xiàn),復(fù)雜醫(yī)療業(yè)務(wù)由前后端/微服務(wù)腳手架實(shí)現(xiàn),從而優(yōu)化開(kāi)發(fā)過(guò)程。

          低代碼基礎(chǔ)架構(gòu)可分為四個(gè)部分:由核心引擎(頁(yè)面、模型、工作流程、API編排)實(shí)現(xiàn)前端交互和業(yè)務(wù)編排的效果;可視化設(shè)計(jì)平臺(tái)對(duì)接開(kāi)發(fā)者,實(shí)現(xiàn)平臺(tái)的表單設(shè)計(jì)和業(yè)務(wù)設(shè)定;平臺(tái)門戶提供通用的技術(shù)組件和常規(guī)業(yè)務(wù)模板;運(yùn)營(yíng)管理是平臺(tái)的基礎(chǔ)組件部分,對(duì)平臺(tái)的運(yùn)行狀態(tài)進(jìn)行檢測(cè)與管理。

          開(kāi)發(fā)者使用低代碼進(jìn)行應(yīng)用開(kāi)發(fā)時(shí),需要主數(shù)據(jù)設(shè)定,領(lǐng)域建模、頁(yè)面建模、服務(wù)編排、編譯出碼和部署運(yùn)營(yíng)等環(huán)節(jié),其中頁(yè)面建模與服務(wù)編排是核心開(kāi)發(fā)環(huán)節(jié)。

          低代碼平臺(tái)中,主要由建模引擎和編排引擎支撐用戶的前端頁(yè)面操作。其中建模引擎支撐靜態(tài)模型構(gòu)建,編排引擎支撐動(dòng)態(tài)邏輯流轉(zhuǎn)。建模引擎支撐開(kāi)發(fā)者在前端開(kāi)發(fā)界面對(duì)應(yīng)用程序的業(yè)務(wù)邏輯、數(shù)據(jù)結(jié)構(gòu)和界面布局等進(jìn)行設(shè)計(jì)和構(gòu)建的行為,包含數(shù)據(jù)引擎、表單引擎、頁(yè)面引擎、領(lǐng)域建模引擎等。編排引擎支撐用戶可視化編排應(yīng)用的數(shù)據(jù)表單流轉(zhuǎn)、自動(dòng)化管理、服務(wù)調(diào)度,包含流程引擎、規(guī)則引擎、消息引擎、事件驅(qū)動(dòng)引擎等。在建模引擎和編排引擎的共同作用下搭建完整的應(yīng)用外殼。

          現(xiàn)在業(yè)界也有了一些低代碼平臺(tái),從開(kāi)源角度看,成熟度高的是Jecloud。Jecloud分為社區(qū)版和商業(yè)版本。社區(qū)版提供了基礎(chǔ)的低代碼開(kāi)發(fā)功能,以及OA審批功能。商業(yè)版多了括門戶展示套件,接口引擎,文檔套件,手機(jī)套件等擴(kuò)展組件。

          平臺(tái)功能架構(gòu)分為:存儲(chǔ)層、平臺(tái)層、應(yīng)用層、展現(xiàn)層。根據(jù)其不同層級(jí)劃分,開(kāi)發(fā)和運(yùn)維人員可根據(jù)不同的部署及實(shí)施方案構(gòu)建出可用性強(qiáng)、擴(kuò)展性高的應(yīng)用。

          1. 存儲(chǔ)層:用于數(shù)據(jù)庫(kù)的存儲(chǔ)及文件的存儲(chǔ)。用戶可以根據(jù)需求使用相同或獨(dú)立數(shù)據(jù)庫(kù)。
          2. 平臺(tái)層:主要提供低代碼及通用服務(wù)能力,主要包括網(wǎng)關(guān)服務(wù)、元數(shù)據(jù)服務(wù)、RBAC服務(wù)、消 息服務(wù)、文檔服務(wù)等。
          3. 應(yīng)用層:主要提供業(yè)務(wù)服務(wù)的能力,用戶可基于平臺(tái)層快速創(chuàng)建及發(fā)布業(yè)務(wù)服務(wù),從而以 JECIoud為底座構(gòu)建出高可用的微服務(wù)應(yīng)用。
          4. 展現(xiàn)層:主要提供前端多端展示的能力,用戶可以基于元數(shù)據(jù)解析引擎的配置、微應(yīng)用的平臺(tái) 插件開(kāi)發(fā)及移動(dòng)端的多端配置開(kāi)發(fā)快速構(gòu)建多端的展示應(yīng)用。


          Jecloud界面顏值高,做出來(lái)的效果和界面漂亮,在顏值即代表正義的當(dāng)下,是一款不錯(cuò)的開(kāi)箱即用低代碼平臺(tái)。Jecloud是一套基于ServiceComb的微服務(wù)體系,特別適合信創(chuàng)平臺(tái)。Jecloud包括go和java部分,其中java部分開(kāi)源,go是用來(lái)管理各個(gè)微服務(wù)的應(yīng)用。

          服務(wù)名稱

          占用端口

          用途

          說(shuō)明

          mysql

          31306

          數(shù)據(jù)服務(wù)

          基礎(chǔ)服務(wù)

          Redis

          31379

          提供二級(jí)緩存等

          基礎(chǔ)服務(wù)

          openresty

          80

          網(wǎng)關(guān)代理

          基礎(chǔ)服務(wù)

          comb

          30100/30103

          注冊(cè)中心

          基礎(chǔ)服務(wù)

          apollo

          8070/8080/8090

          配置中心

          基礎(chǔ)服務(wù)

          gateway

          3050

          業(yè)務(wù)網(wǎng)關(guān)

          jecloud服務(wù)

          meta

          3051

          元數(shù)據(jù)

          jecloud服務(wù)

          rbac

          3052

          權(quán)限管理

          jecloud服務(wù)

          connector

          3053/7010

          連接器

          jecloud服務(wù)

          workflow

          3054

          工作流

          jecloud服務(wù)

          demo

          3055

          demo

          jecloud服務(wù)

          document

          3056

          文檔

          jecloud服務(wù)

          message

          3057

          消息

          jecloud服務(wù)

          job

          3060

          job

          jecloud服務(wù)

          operator

          3061

          operator

          jecloud管理(go)

          jinit


          jinit

          jecloud管理(go)


          前面闡述了4款開(kāi)發(fā)框架的形態(tài),也是開(kāi)發(fā)平臺(tái)的發(fā)展過(guò)程,總有1款適合當(dāng)前的業(yè)務(wù)開(kāi)發(fā)。考慮到醫(yī)療體系的復(fù)雜和多樣性,推薦采用2套以上的框架,混合適配不同的場(chǎng)景開(kāi)發(fā),通過(guò)微服務(wù)做各個(gè)模塊的服務(wù)集成。

          一種可能的場(chǎng)景是后臺(tái)管理型的業(yè)務(wù)可以采用低代碼平臺(tái)的模式;而面向患者的業(yè)務(wù)系統(tǒng)采用單體模式或者前后端模式;對(duì)于互聯(lián)網(wǎng)的惠民應(yīng)用,在后臺(tái)服務(wù)的基礎(chǔ)上生成APP應(yīng)用頁(yè)面或者微信小程序前端,就能涵蓋醫(yī)療業(yè)務(wù)體系的方方面面。

          前文闡述了基于表的業(yè)務(wù)模塊開(kāi)發(fā),圍繞表單進(jìn)行用戶的交互。還有一種是基于業(yè)務(wù)流程的開(kāi)發(fā),有2種業(yè)務(wù)流程:人-機(jī)交互的人工審批流程,機(jī)-機(jī)的自動(dòng)處理流程(服務(wù)編排),Jecloud已經(jīng)提供了基于Activiti7的審批型流程設(shè)計(jì),但如果是基于微服務(wù)編排的業(yè)務(wù)邏輯,則需要服務(wù)編排引擎來(lái)支撐,兩者應(yīng)用場(chǎng)景不一樣,所以設(shè)計(jì)思路也不同,需要區(qū)分對(duì)待。

          2.2 服務(wù)編排

          服務(wù)編排的概念是微服務(wù)架構(gòu)落地伴生而來(lái),原本一次請(qǐng)求即可處理完成的業(yè)務(wù),現(xiàn)在可能需要多次請(qǐng)求才能完成,為了降低前端邏輯的復(fù)雜性并提高前后端交互效率,BFF層應(yīng)運(yùn)而生。BFF作為前后端的代理層,提供了一個(gè)業(yè)務(wù)接口聚合層,其核心職責(zé)是為前端(PC、小程序、H5等)適配不同的業(yè)務(wù)場(chǎng)景,降低客戶端與業(yè)務(wù)端的耦合,前期通過(guò)硬編碼的方式來(lái)實(shí)現(xiàn)BFF層的需求,是最簡(jiǎn)單最直接的方式。但隨著B(niǎo)FF層承接業(yè)務(wù)需求的增多,采取硬編碼方式容易產(chǎn)生編碼效率低、編碼細(xì)節(jié)難以規(guī)范、調(diào)試測(cè)試效率低等問(wèn)題。

          服務(wù)編排在統(tǒng)一規(guī)范的基礎(chǔ)上提供了業(yè)務(wù)邏輯的柔性設(shè)計(jì),通過(guò)可視化設(shè)計(jì)快速的API的編排、調(diào)試、測(cè)試和上線。看上去服務(wù)編排和工作流引擎在形式上趨同,但兩者不一樣。在腳手架/低代碼平臺(tái)會(huì)提供類似Flowable 、Activiti、Camunda實(shí)現(xiàn)的OA審批工作流系統(tǒng)。這種工作流基于表單模式,通過(guò)擴(kuò)展表或者表單表上添加輔組字段滿足業(yè)務(wù)的審批流轉(zhuǎn),最終形成留痕記錄。這種模式都是人-機(jī)交互模式,而服務(wù)編排,更多的是機(jī)-機(jī)交互模式,強(qiáng)調(diào)的是服務(wù)(API)的有序調(diào)用。

          2.2.1 BFF的作用

          微服務(wù)體系架構(gòu)是一種前后端架構(gòu),在前后端之間添加中間層 (BFF:Backend For Frontend),以解決服務(wù)的匯聚和調(diào)用,把BFF加入在前后端架構(gòu)之后,前端服務(wù)不再直接訪問(wèn)后端微服務(wù),而是通過(guò) BFF 層進(jìn)行訪問(wèn)。從微服務(wù)的角度來(lái)看,由于有關(guān) UI 邏輯的數(shù)據(jù)在 BFF 層進(jìn)行了處理,減少前后端細(xì)顆粒微服務(wù)之間的相互調(diào)用。

          BFF層的主要職責(zé)是組合使用后臺(tái)數(shù)據(jù),稍微額外處理C端展示邏輯。可以參看前章的“基于tuxedo的API編排架構(gòu)”的內(nèi)容。綜上所述,采用BFF之后的開(kāi)發(fā)邏輯:通過(guò)后臺(tái)工具查到原始數(shù)據(jù),然后按照業(yè)務(wù)要求,把查到的原始數(shù)據(jù)封裝成API,再通過(guò)加工->組裝->適配成可以展示給前端的信息,最后發(fā)送給客戶端使用。這部分各個(gè)服務(wù)(API)的聚合工作主要由中間層的BFF API負(fù)責(zé)。

          BFF API的處理也是有一定的業(yè)務(wù)邏輯,可以抽象為串行,并行,分支,匯聚等,包括多種服務(wù)接口的適配,可視化業(yè)務(wù)邏輯的設(shè)計(jì),持久化保存需求,接口返回?cái)?shù)據(jù)的裁剪、排序、格式化等操作,這些功能又可以映射為BPM的能力。所以最終支持BFF層運(yùn)行的底層組件是BPM系統(tǒng),提高提升微服務(wù)的復(fù)用度,降低編碼及編譯打包的等待時(shí)間,提高業(yè)務(wù)邏輯的快速交付能力。

          2.2.2 BPM的定位

          可視化服務(wù)編排系統(tǒng)的核心功能都是對(duì)BFF日常需求及研發(fā)流程的抽象,從接口的調(diào)用方式、出入?yún)⒌奶幚怼⒔涌诋惓G闆r的處理、服務(wù)的調(diào)試測(cè)試、服務(wù)的上線流程等幾個(gè)維度完成系統(tǒng)整體功能的設(shè)計(jì)。

          A、實(shí)現(xiàn)思路

          1. BFF 層中的BPM 系統(tǒng)可以用于定義和管理API的聚合邏輯,包括不同微服務(wù)之間的調(diào)用順序、條件和數(shù)據(jù)處理流程。
          2. BPM 系統(tǒng)可以充當(dāng)一個(gè)中心化的控制器,負(fù)責(zé)協(xié)調(diào)和管理各種微服務(wù)之間的交互,從而簡(jiǎn)化前端與后端微服務(wù)之間的通信。
          3. 通過(guò) BPM 系統(tǒng),可以實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)流程和邏輯,將這些邏輯從前端和后端微服務(wù)中解耦出來(lái),提高系統(tǒng)的靈活性和可維護(hù)性。

          B、具體方案

          1. 在 BFF 層引入一個(gè)BPM 系統(tǒng),用于定義和管理API 的聚合邏輯。
          2. BPM 系統(tǒng)提供可視化流程配置界面,方便業(yè)務(wù)人員定義和修改流程規(guī)則。
          3. BPM 系統(tǒng)需要與微服務(wù)架構(gòu)無(wú)縫集成,可以通過(guò)WebService/Rest/SpringBean 或消息隊(duì)列等方式與后端服務(wù)進(jìn)行通信。

          C、BPM 系統(tǒng)選型

          1. Camunda:開(kāi)源BPM,提供強(qiáng)大的工作流和決策引擎,適合用于復(fù)雜的業(yè)務(wù)流程管理。
          2. Flowable開(kāi)源BPM,具備良好的靈活性和可擴(kuò)展性,支持BPMN/DMN/CMMN標(biāo)準(zhǔn)。
          3. Activiti:開(kāi)源BPM,具有輕量級(jí)和易擴(kuò)展的特點(diǎn),適合用于中小型項(xiàng)目的流程管理。
          4. 自研BFM:考慮到Camunda/Flowable/Activiti在執(zhí)行中需要落盤處理,以及自身實(shí)現(xiàn)的復(fù)雜性,導(dǎo)致性能不高。高性能服務(wù)編排本身只是一段膠水代碼,不能給原生服務(wù)調(diào)用產(chǎn)生額外的負(fù)擔(dān),可以自研輕量級(jí)服務(wù)編排系統(tǒng)(BFM)。
          5. 也可以采用輕量級(jí)服務(wù)編排,諸如jd-easyflow和liteflow等

          核心功能

          1. 接口調(diào)用:接口間調(diào)用關(guān)系可以抽象為:串行調(diào)用、并行調(diào)用、排他調(diào)用
          2. 參數(shù)處理:包括入?yún)?出差,靜態(tài)/動(dòng)態(tài)參數(shù),動(dòng)態(tài)參數(shù)的值來(lái)自外部接口的返回值
          3. 異常處理:在異常場(chǎng)景下,流程能執(zhí)行一個(gè)預(yù)期的分支,并把異常信息能捕獲
          4. 調(diào)試測(cè)試:需要輸出編排執(zhí)行的輸出日志,以及異常信息的捕獲
          5. 服務(wù)部署:引擎可以分為單節(jié)點(diǎn)部署和多節(jié)點(diǎn)部署,不同的節(jié)點(diǎn)執(zhí)行不同的業(yè)務(wù)流程,同時(shí)因?yàn)椴皇怯簿幋a,所以業(yè)務(wù)邏輯的部署實(shí)現(xiàn)了類似定義即部署的方式。


          2.2.3 服務(wù)的管理

          當(dāng)平臺(tái)積累了大量的后臺(tái)服務(wù),如何有效使用是平臺(tái)設(shè)計(jì)的重要內(nèi)容。服務(wù)首先要?dú)w類,做好領(lǐng)域劃分,然后服務(wù)的命名和版本要規(guī)范,服務(wù)的出參和入?yún)⒁紤]方便和實(shí)用。

          A、平臺(tái)服務(wù)列表

          1. 區(qū)域衛(wèi)生平臺(tái)接口:醫(yī)共體平臺(tái)通過(guò)與區(qū)域平臺(tái)對(duì)接,實(shí)現(xiàn)業(yè)務(wù)協(xié)同和數(shù)據(jù)共享;
          2. 區(qū)域業(yè)務(wù)應(yīng)用接口:婦幼保健、遠(yuǎn)程醫(yī)療、遠(yuǎn)程心電、區(qū)域LIS、區(qū)域PACS等;
          3. 區(qū)域協(xié)同應(yīng)用接口:注冊(cè)服務(wù)、主索引服務(wù)、遠(yuǎn)程會(huì)診、雙向轉(zhuǎn)診、檢查檢驗(yàn)結(jié)果共享、協(xié)同公衛(wèi)報(bào)病、協(xié)同提醒、健康檔案調(diào)閱等;
          4. 公立醫(yī)院內(nèi)部系統(tǒng)接口:醫(yī)院平臺(tái)、HIS、LIS、PACS、EMR、HRP等;
          5. 基層醫(yī)療機(jī)構(gòu)內(nèi)部系統(tǒng)接口:基層醫(yī)療、公共衛(wèi)生、家庭簽約、衛(wèi)生綜合管理等;
          6. 便民惠民應(yīng)用接口:統(tǒng)一支付、預(yù)約掛號(hào)、報(bào)告查詢、健康信息管理等;
          7. 衛(wèi)生資源目錄共享接口:為第三方系統(tǒng)(公安/民政等)提供數(shù)據(jù)訂閱和數(shù)據(jù)推送服務(wù);
          8. 其它需要擴(kuò)展的內(nèi)部接口;

          B、服務(wù)類型

          服務(wù)編排需要集成不同的第三方服務(wù)和內(nèi)部服務(wù),對(duì)于這些應(yīng)用,接口和參數(shù)各不相同,考慮到方便服務(wù)的集成和內(nèi)部服務(wù)的穩(wěn)定,可以采用:外部接口=>轉(zhuǎn)換服務(wù)=>內(nèi)部服務(wù)。

          1. 外部服務(wù):第三方系統(tǒng)提供的業(yè)務(wù)主體,對(duì)外提供Rest、WebService以及RPC
          2. 內(nèi)部服務(wù):平臺(tái)內(nèi)部實(shí)現(xiàn)的服務(wù),提供本地調(diào)用的模式或者rest等,以及通用POJO或json(通用字段和擴(kuò)展字段),統(tǒng)一異常調(diào)度處理機(jī)制
          3. 轉(zhuǎn)換接口:集成Rest和WebService客戶端,以及Json,Map,Pojo的轉(zhuǎn)換。通過(guò)轉(zhuǎn)換接口適配內(nèi)外接口的差異性,維系平臺(tái)接口的穩(wěn)定性。


          3、服務(wù)生命周期

          微服務(wù)API的開(kāi)發(fā)納入生命周期管理時(shí),遵循一套開(kāi)發(fā),上線,下線,版本控制的管理。另外構(gòu)建服務(wù)度量指標(biāo),通過(guò)日志和性能數(shù)據(jù)采集,監(jiān)控服務(wù)運(yùn)行監(jiān)控狀態(tài),并執(zhí)行相應(yīng)的限流,預(yù)警等管控策略,以確保微服務(wù)的持續(xù)健康,可靠和高效運(yùn)行。

          2.2.4 編排的功能

          功能自洽的區(qū)域平臺(tái)的BFM-engine功能包括:

          1. 支持XPDL/BPM規(guī)范的流程,包括串行,并行,條件(xor/or),定時(shí)啟動(dòng),事件啟動(dòng)。
          2. 支持多服務(wù)接口調(diào)用,包括Rest,web服務(wù),springbean和javabean。
          3. 流程支持各個(gè)服務(wù)的參數(shù)的傳入和傳出
          4. 支持多模式部署,包括單節(jié)點(diǎn)和多節(jié)點(diǎn),local部署模式
          5. 如果流程中的活動(dòng)采用springbean服務(wù),支持事務(wù)調(diào)用
          6. 支持服務(wù)管理,根據(jù)功能領(lǐng)域?qū)崿F(xiàn)基于服務(wù)目錄的劃分和管理,服務(wù)的參數(shù)定義和服務(wù)的版本管理,以及服務(wù)生命周期管理
          7. 支持執(zhí)行記錄留痕,可追溯異常流程和正常流程運(yùn)行/完成流程


          2.2.5 狀態(tài)機(jī)應(yīng)用

          引擎的實(shí)現(xiàn)會(huì)涉及到flow-act-item,彼此有依賴關(guān)系,另外自身也有狀態(tài)變化,包括create-run-finish以及其他輔助狀態(tài),所以如果自研引擎,需要構(gòu)建一個(gè)3層狀態(tài)機(jī)模型。

          對(duì)于3層狀態(tài)機(jī),每層狀態(tài)機(jī)擁有自己的狀態(tài)變化,同時(shí)狀態(tài)變化可能會(huì)對(duì)其他狀態(tài)機(jī)產(chǎn)生影響。這里區(qū)分2種情況:

          1. 對(duì)于人工活動(dòng),它不直接面向參與者,需要item與參與者交互,同時(shí)擁有自身的狀態(tài)和控制字段,并和活動(dòng)作狀態(tài)交互。所以對(duì)于人工活動(dòng)來(lái)說(shuō),有三層狀態(tài):過(guò)程à活動(dòng)à任務(wù)項(xiàng)。
          2. 自動(dòng)活動(dòng)主要處理業(yè)務(wù)邏輯,沒(méi)有人-機(jī)界面,不需要額外的控制,因此對(duì)于自動(dòng)活動(dòng)來(lái)說(shuō),它就只有兩層狀態(tài),過(guò)程-活動(dòng)。

          2.3 數(shù)據(jù)倉(cāng)庫(kù)

          醫(yī)院/平臺(tái)的互聯(lián)互通為醫(yī)療健康大數(shù)據(jù)奠定了基礎(chǔ);同時(shí)個(gè)性化診斷、疾病預(yù)測(cè)與輔助決策等各類醫(yī)療人工智能應(yīng)用也在不斷涌現(xiàn),醫(yī)療健康大數(shù)據(jù)的存儲(chǔ)和分析,需要有一套體系來(lái)管理,數(shù)據(jù)倉(cāng)庫(kù)由此應(yīng)運(yùn)而生。

          數(shù)據(jù)倉(cāng)庫(kù)主要基于業(yè)務(wù)庫(kù)(OLTP)的數(shù)據(jù)以及第三方外部數(shù)據(jù),通過(guò)采集清洗轉(zhuǎn)換后存儲(chǔ)在事實(shí)表中(事實(shí)+維度),實(shí)現(xiàn)系統(tǒng)的分析整理,支持各種分析方法,如聯(lián)機(jī)分析處理(OLAP)、數(shù)據(jù)挖掘等進(jìn)行,進(jìn)而支持決策支持系統(tǒng)、從而獲取有價(jià)值的信息。

          數(shù)倉(cāng)的建設(shè)需要根據(jù)數(shù)據(jù)采集量,指標(biāo)計(jì)算的要求,周邊系統(tǒng)的匹配度,開(kāi)發(fā)人員和運(yùn)維人員的熟練程度來(lái)綜合考慮:

          1. 采用離線數(shù)倉(cāng)模式,能更好的契合醫(yī)療體系各種數(shù)據(jù)接口和來(lái)源,并做好分層設(shè)計(jì),確保數(shù)據(jù)和指標(biāo)以及中間過(guò)程數(shù)據(jù)能盡可能復(fù)用;
          2. 有實(shí)時(shí)要求的情況下采取離線 + 實(shí)時(shí)的混合模式,且在設(shè)計(jì)指標(biāo)的時(shí)候需要規(guī)劃,確保2者指標(biāo)不重合,避免2種指標(biāo)統(tǒng)計(jì)的差異性;
          3. 數(shù)倉(cāng)技術(shù)底座采取混合搭建模式,ODS和DWD采用GP6/7體系,相比Hdfs+hive體系,GP更適合醫(yī)療業(yè)務(wù)場(chǎng)景。DWD庫(kù)有EMPI做數(shù)據(jù)聚合的需求(OLTP性能),這里需要測(cè)算增刪改查以及數(shù)據(jù)落盤性能,如果必要,搭建一套平行DWD計(jì)算庫(kù),并保持2者的數(shù)據(jù)批量同步;DWS部分大寬表采用ClickHouse,用以提升聯(lián)機(jī)查詢速度,本身ClickHouse可以作為Flink的DWS,從政務(wù)云/信創(chuàng)云的資源和數(shù)據(jù)規(guī)模考慮,可以不用Drois,從而節(jié)省資源
          4. 在實(shí)施機(jī)器學(xué)習(xí)的計(jì)算需求,可以采用MADlib,作為廉價(jià)機(jī)器學(xué)習(xí)的技術(shù)底座。
          5. 在實(shí)時(shí)LLM人工智慧的計(jì)算需求,可以采用chatGLM4-9B/Qwen-72B,作為本地部署的基礎(chǔ)模型,同時(shí)實(shí)施RAG來(lái)提升LLM的垂直業(yè)務(wù)能力。


          對(duì)于數(shù)據(jù)倉(cāng)庫(kù)而言,無(wú)論怎么升級(jí)和變化,其設(shè)計(jì)目標(biāo)是一致的,要求如下:

          1. 適配業(yè)務(wù)場(chǎng)景和性能要求,選擇合適的技術(shù)組件搭建數(shù)倉(cāng)體系;
          2. 層級(jí)結(jié)構(gòu)清晰,設(shè)計(jì)合理、避免交換中心直接產(chǎn)出報(bào)表;
          3. 數(shù)據(jù)一致性保證,避免信息孤島產(chǎn)生;剔除過(guò)度冗余數(shù)據(jù)。
          4. 高數(shù)據(jù)質(zhì)量:數(shù)據(jù)全、數(shù)據(jù)質(zhì)量高、數(shù)據(jù)好用、可擴(kuò)展、安全性、及時(shí)性。
          5. 應(yīng)對(duì)業(yè)務(wù)、需求的變更,具備一定的穩(wěn)健性。


          2.3.1 數(shù)據(jù)存儲(chǔ)

          醫(yī)療體系平臺(tái)采用離線批處理方式能兼容最大多數(shù)的數(shù)據(jù)源,方便最大范圍的采集數(shù)據(jù)。在當(dāng)前考慮關(guān)系型數(shù)據(jù)的情況下,數(shù)倉(cāng)可以采用MPP 數(shù)據(jù)庫(kù);在將來(lái)構(gòu)建區(qū)域一統(tǒng)的多模態(tài)數(shù)據(jù)資源池的時(shí)候,可以考慮采用數(shù)據(jù)湖體系。

          數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)作為大數(shù)據(jù)系統(tǒng)的兩條不同演進(jìn)路線,各有適用范圍。數(shù)據(jù)倉(cāng)庫(kù)適合處理結(jié)構(gòu)化的數(shù)據(jù)可以實(shí)現(xiàn)良好的分析與處理,但對(duì)于非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)以及種類繁多、存儲(chǔ)量大的數(shù)據(jù)就需要數(shù)據(jù)湖來(lái)處理。

          數(shù)據(jù)湖并不比數(shù)據(jù)倉(cāng)庫(kù)在處理流程上多出了什么內(nèi)容,更多的在于結(jié)構(gòu)性的變化,2種處理方式,代表著兩種數(shù)據(jù)處理和服務(wù)模式,是數(shù)據(jù)技術(shù)領(lǐng)域的一次輪回。

          1. 數(shù)據(jù)湖可以使不同格式的原始數(shù)據(jù)匯聚,無(wú)需預(yù)定義模型即可為大數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、預(yù)測(cè)分析等提供支持。數(shù)據(jù)湖雖然適合存儲(chǔ)海量數(shù)據(jù),但有些缺陷無(wú)法避免:數(shù)據(jù)湖無(wú)法面向事務(wù)進(jìn)行處理,無(wú)法提高數(shù)據(jù)質(zhì)量,因缺乏數(shù)據(jù)一致性,使得輸出結(jié)果幾乎不可能被混合讀取和分析,以及無(wú)法實(shí)現(xiàn)流批處理。
          2. 數(shù)據(jù)倉(cāng)庫(kù)的處理會(huì)經(jīng)歷清洗和轉(zhuǎn)換,對(duì)于原始數(shù)據(jù)而言可能發(fā)生了變化,而數(shù)據(jù)湖則可以利用數(shù)據(jù)湖提供的工具流接觸到原始數(shù)據(jù),涵蓋了從數(shù)據(jù)采集、抽取、存儲(chǔ)、加工的各個(gè)階段,提升了數(shù)據(jù)對(duì)業(yè)務(wù)的理解,發(fā)揮出原始數(shù)據(jù)的最大價(jià)值,也最終有利于將來(lái)LLM在真實(shí)原始的數(shù)據(jù)上進(jìn)行分析和推理。


          2.3.2 數(shù)據(jù)來(lái)源

          數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)來(lái)源包括健康醫(yī)療大數(shù)據(jù)和其他行業(yè)數(shù)據(jù)來(lái)源。健康醫(yī)療大數(shù)據(jù)主要包括匯聚個(gè)體和各類醫(yī)療衛(wèi)生業(yè)務(wù)機(jī)構(gòu)數(shù)據(jù)所形成的全員人口、電子健康檔案、電子病歷、各垂直系統(tǒng)的業(yè)務(wù)管理數(shù)據(jù)等。其他行業(yè)數(shù)據(jù)來(lái)源包括教育、公安、民政、人力資源、社會(huì)保障、農(nóng)業(yè)、安全監(jiān)管、檢驗(yàn)檢疫(氣象、保險(xiǎn)監(jiān)管、殘聯(lián)等相關(guān)部門及行業(yè)。

          這些數(shù)據(jù)源來(lái)自各個(gè)醫(yī)療機(jī)構(gòu)的業(yè)務(wù)庫(kù),匯聚到交換中心的時(shí)候需要根據(jù)國(guó)家規(guī)范進(jìn)行轉(zhuǎn)換清洗,形成區(qū)域一統(tǒng)的數(shù)據(jù)標(biāo)準(zhǔn)。也可以采用CDA作為數(shù)據(jù)來(lái)源進(jìn)行采集,但一般來(lái)說(shuō),CDA的數(shù)據(jù)質(zhì)量不如交換庫(kù)的采集模式。


          2.3.3 標(biāo)準(zhǔn)規(guī)范

          數(shù)據(jù)標(biāo)準(zhǔn)是一套由管理制度、管控流程、技術(shù)工具共同組成的體系,通過(guò)這套體系來(lái)推廣和應(yīng)用統(tǒng)一的數(shù)據(jù)定義、數(shù)據(jù)分類、紀(jì)律格式和轉(zhuǎn)換、編碼等來(lái)對(duì)數(shù)據(jù)的標(biāo)準(zhǔn)化,保障數(shù)據(jù)定義和使用的一致性、準(zhǔn)確性和完整性的規(guī)范性約束。不限于如下標(biāo)準(zhǔn):

          1. 區(qū)域業(yè)務(wù)基于健康檔案的區(qū)域衛(wèi)生標(biāo)準(zhǔn)規(guī)范
          2. 醫(yī)療機(jī)構(gòu)基于電子病歷的業(yè)務(wù)應(yīng)用標(biāo)準(zhǔn)規(guī)范
          3. 業(yè)務(wù)協(xié)同及基層綜合管理應(yīng)用標(biāo)準(zhǔn)規(guī)范
          4. 第三方系統(tǒng)接入標(biāo)準(zhǔn)規(guī)范

          在數(shù)據(jù)類規(guī)范中,通常著重對(duì)數(shù)據(jù)集、數(shù)據(jù)元、代碼以及數(shù)據(jù)交換接口的內(nèi)容進(jìn)行標(biāo)準(zhǔn)規(guī)范,從業(yè)務(wù)數(shù)據(jù)的角度,針對(duì)信息化建設(shè)的需要進(jìn)行業(yè)務(wù)標(biāo)準(zhǔn)的編制。


          2.3.4 數(shù)據(jù)模型

          在醫(yī)療體系中,數(shù)據(jù)模型貫穿整個(gè)業(yè)務(wù)領(lǐng)域和數(shù)據(jù)ETL的過(guò)程(ods-dwd-dws)。在業(yè)務(wù)領(lǐng)域中,醫(yī)學(xué)元數(shù)據(jù)結(jié)合領(lǐng)域信息模型可以被用來(lái)構(gòu)建醫(yī)療數(shù)據(jù)的語(yǔ)義表達(dá),從而更全面地表達(dá)和描述電子病歷。醫(yī)學(xué)元數(shù)據(jù)通常包括醫(yī)學(xué)數(shù)據(jù)的模式、定義和屬性,而領(lǐng)域信息模型則提供了關(guān)于特定醫(yī)學(xué)領(lǐng)域的知識(shí)和規(guī)則。

          模型與數(shù)據(jù)庫(kù)

          2.3.5 數(shù)據(jù)治理

          在基于醫(yī)院數(shù)據(jù)或區(qū)域平臺(tái)數(shù)據(jù)進(jìn)行臨床科研和數(shù)據(jù)應(yīng)用開(kāi)發(fā)的過(guò)程中,即使在病人數(shù)量足夠的情況下,數(shù)據(jù)的可用性依然存在問(wèn)題。目前影響醫(yī)療數(shù)據(jù)質(zhì)量的原因如下:

          1. 原始數(shù)據(jù)在錄入過(guò)程中有數(shù)據(jù)錯(cuò)漏、數(shù)據(jù)不完整等問(wèn)題。
          2. 系統(tǒng)間/區(qū)域內(nèi)缺乏統(tǒng)一的元數(shù)據(jù)標(biāo)準(zhǔn),數(shù)據(jù)融合困難。
          3. 系統(tǒng)間/區(qū)域內(nèi)缺乏統(tǒng)一的主數(shù)據(jù)管理,病人、醫(yī)生等醫(yī)療應(yīng)用中的核心數(shù)據(jù)實(shí)體難以被唯一標(biāo)識(shí)并實(shí)時(shí)更新。
          4. 數(shù)據(jù)清洗缺乏統(tǒng)一的策略,導(dǎo)致數(shù)據(jù)被多次清洗,使用代價(jià)高。
          5. 由于缺乏元數(shù)據(jù)和主數(shù)據(jù)標(biāo)準(zhǔn),即使數(shù)據(jù)被勉強(qiáng)放在一起,數(shù)據(jù)可達(dá)性也很差,無(wú)法知曉每個(gè)字段的確切含義和具體取值范圍,難以基于簡(jiǎn)單的查詢找到需要的數(shù)據(jù)。
          6. 大量醫(yī)療數(shù)據(jù)以文本、影像、圖像等非結(jié)構(gòu)化的方式存儲(chǔ),增加了管理和整合的難度。
          7. 在規(guī)劃層面還是在操作層面,數(shù)據(jù)隱私管理、數(shù)據(jù)使用的權(quán)限與流程都缺乏指導(dǎo)性的技術(shù)標(biāo)準(zhǔn)和規(guī)范,導(dǎo)致雖然采集存儲(chǔ)了很多數(shù)據(jù),但不知道誰(shuí)可以用、如何使用的問(wèn)題。


          A、數(shù)據(jù)治理的層級(jí)

          在醫(yī)療體系中,將醫(yī)療數(shù)據(jù)治理按管理機(jī)構(gòu)分為4類,本文更關(guān)注第2類。

          1、醫(yī)院數(shù)據(jù)治理

          醫(yī)院成立數(shù)據(jù)管理部門,完成流程和規(guī)范制訂、數(shù)據(jù)質(zhì)量保證和質(zhì)量控制、流程審批等工作,并對(duì)數(shù)據(jù)使用方和IT設(shè)施建設(shè)方進(jìn)行管理,對(duì)其數(shù)據(jù)資產(chǎn)的管理和控制,支撐并保障數(shù)據(jù)被安全、高效地交換與使用。


          2、區(qū)域數(shù)據(jù)治理

          與醫(yī)院數(shù)據(jù)管理內(nèi)容相似,但實(shí)施起來(lái)難度更復(fù)雜:

          l 主數(shù)據(jù)管理和元數(shù)據(jù)管理的復(fù)雜度高:病人基礎(chǔ)數(shù)據(jù)是臨床醫(yī)療信息的主數(shù)據(jù)。區(qū)域數(shù)據(jù)來(lái)源于多家醫(yī)院,每家醫(yī)院病人用的身份標(biāo)識(shí)不一樣,病人基礎(chǔ)信息也會(huì)有差異。需要通過(guò)統(tǒng)一標(biāo)識(shí)來(lái)統(tǒng)一病人的主數(shù)據(jù),并關(guān)聯(lián)病人在不同醫(yī)院的就診記錄。

          l 數(shù)據(jù)安全性管理更嚴(yán)格:區(qū)域數(shù)據(jù)量比較大,病人的就診數(shù)據(jù)在時(shí)序上更完整,因此數(shù)據(jù)泄露帶來(lái)的嚴(yán)重性更大,區(qū)域?qū)?shù)據(jù)安全管理的要求更嚴(yán)格。


          3、專科聯(lián)盟/專科醫(yī)聯(lián)體/專病中心的數(shù)據(jù)治理

          專科聯(lián)盟一般由權(quán)威醫(yī)療機(jī)構(gòu)牽頭,但是其牽頭單位并沒(méi)有行政權(quán)力,聯(lián)盟單位之間的協(xié)作共享完全是一種自愿的行為。因此,專科聯(lián)盟形式的醫(yī)聯(lián)體除了要解決區(qū)域醫(yī)聯(lián)體中碰到的技術(shù)問(wèn)題外,還要解決數(shù)據(jù)共享后的利益分享問(wèn)題,確保醫(yī)聯(lián)體每個(gè)成員能在數(shù)據(jù)共享活動(dòng)中受益。


          4、醫(yī)療標(biāo)注數(shù)據(jù)與知識(shí)型數(shù)據(jù)治理

          數(shù)據(jù)治理主要面向的對(duì)象是病人數(shù)據(jù),但在醫(yī)院協(xié)作共享過(guò)程中,知識(shí)型數(shù)據(jù)也必不可少。在面向分析推理等智能應(yīng)用,需要大量的標(biāo)注數(shù)據(jù),這些數(shù)據(jù)的管理和利用也屬于數(shù)據(jù)治理的范疇。

          標(biāo)注數(shù)據(jù)主要是針對(duì)電子病歷文本、影像等非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行實(shí)體、屬性、關(guān)系等標(biāo)注得到的數(shù)據(jù),標(biāo)注數(shù)據(jù)的質(zhì)量對(duì)訓(xùn)練深度學(xué)習(xí)或神經(jīng)網(wǎng)絡(luò)模型起著決定性作用。為了實(shí)現(xiàn)對(duì)標(biāo)注數(shù)據(jù)的治理,應(yīng)該針對(duì)不同粒度的實(shí)體建立一套完整的標(biāo)注規(guī)范,對(duì)標(biāo)注過(guò)程的各要素進(jìn)行規(guī)范化管理,并對(duì)標(biāo)注結(jié)果進(jìn)行交叉驗(yàn)證等。


          B、數(shù)據(jù)治理的內(nèi)容

          醫(yī)療數(shù)據(jù)治理工具平臺(tái)應(yīng)包含數(shù)據(jù)存儲(chǔ)子系統(tǒng)、元數(shù)據(jù)管理子系統(tǒng)、主數(shù)據(jù)管理子系統(tǒng)、數(shù)據(jù)質(zhì)量管控子系統(tǒng)以及患者數(shù)據(jù)脫敏工具等。

          1、元數(shù)據(jù)管理

          目前醫(yī)院信息系統(tǒng)中存在數(shù)據(jù)模式描述文檔不全、系統(tǒng)之間數(shù)據(jù)關(guān)聯(lián)不清晰、系統(tǒng)值域標(biāo)準(zhǔn)不統(tǒng)一等問(wèn)題,這為數(shù)據(jù)集成造成了困難。在區(qū)域?qū)用妫@些問(wèn)題更嚴(yán)重。因此,需要通過(guò)元數(shù)據(jù)管理獲取業(yè)務(wù)系統(tǒng)中數(shù)據(jù)的含義,輔助數(shù)據(jù)理解,增加分析的敏捷性。元數(shù)據(jù)管理可以提高數(shù)據(jù)的可訪問(wèn)性、一致性及可用性,為多種來(lái)源數(shù)據(jù)的整合搭建了橋梁。

          與其他領(lǐng)域相比,醫(yī)療領(lǐng)域的元數(shù)據(jù)規(guī)范相對(duì)比較成熟,參看《國(guó)家衛(wèi)生計(jì)生委辦公廳關(guān)于印發(fā)住院病案首頁(yè)數(shù)據(jù)填寫質(zhì)量規(guī)范(暫行)和住院病案首頁(yè)數(shù)據(jù)質(zhì)量管理與控制指標(biāo)(2016版)的通知》(國(guó)衛(wèi)辦醫(yī)發(fā)〔2016〕24號(hào))、《病歷書寫規(guī)范》(衛(wèi)醫(yī)政發(fā)〔2010〕11號(hào))、《電子病歷基本規(guī)范》(衛(wèi)醫(yī)政發(fā)〔2010〕24號(hào))、《衛(wèi)生信息基本數(shù)據(jù)集編制規(guī)范》(WS 370-2012)、《衛(wèi)生管理基本數(shù)據(jù)集》(WS374-2012)與《電子病歷基本架構(gòu)與數(shù)據(jù)標(biāo)準(zhǔn)》(衛(wèi)辦發(fā)〔2009〕130號(hào))等。在數(shù)據(jù)值編碼標(biāo)準(zhǔn)方面,國(guó)際上有疾病分類編碼ICD-10、手術(shù)操作編碼ICD-9、SNOMED術(shù)語(yǔ)庫(kù);國(guó)內(nèi)有《衛(wèi)生機(jī)構(gòu)(組織)分類與代碼表》(WS2182002)、《社會(huì)保險(xiǎn)藥品分類與代碼》(LD/T90-2012)和《中醫(yī)病證分類與代碼》(GB/T15657-1995)。

          雖然國(guó)家已經(jīng)規(guī)范了各種醫(yī)療元數(shù)據(jù),然而在實(shí)際落地過(guò)程中,這些標(biāo)準(zhǔn)會(huì)根據(jù)應(yīng)用進(jìn)行不同程度的刪減和擴(kuò)充,甚至出現(xiàn)錯(cuò)誤的使用。因此,需要基于標(biāo)準(zhǔn)建立和實(shí)現(xiàn)元數(shù)據(jù)管理系統(tǒng),實(shí)現(xiàn)對(duì)元數(shù)據(jù)的統(tǒng)一管理,與各個(gè)應(yīng)用關(guān)聯(lián),從而實(shí)現(xiàn)元數(shù)據(jù)的統(tǒng)一。


          2、主數(shù)據(jù)管理

          醫(yī)療數(shù)據(jù)的主數(shù)據(jù)主要有病人信息和醫(yī)生信息兩類。目前,在醫(yī)院層面,各業(yè)務(wù)系統(tǒng)對(duì)病人的信息分別進(jìn)行存儲(chǔ),但大型醫(yī)院都建立了臨床數(shù)據(jù)中心(CDR),為了唯一標(biāo)識(shí)一個(gè)病人,需要通過(guò)構(gòu)建病人主索引號(hào)(EMPI)將存儲(chǔ)于不同系統(tǒng)的病人關(guān)聯(lián)在一起。這里有兩個(gè)問(wèn)題:

          1. EMPI構(gòu)建與識(shí)別。識(shí)別不同系統(tǒng)中同一個(gè)病人不同ID之間的映射關(guān)系十分困難,特別是在區(qū)域平臺(tái)上每個(gè)系統(tǒng)都有獨(dú)立的ID,導(dǎo)致該問(wèn)題更復(fù)雜。
          2. 病人的基礎(chǔ)信息在各個(gè)系統(tǒng)間存在差異和沖突,比如在HIS、LIS、PACS中因?yàn)閭?cè)重點(diǎn)不同,各個(gè)系統(tǒng)數(shù)據(jù)填寫質(zhì)量不一致或數(shù)據(jù)未及時(shí)更新等問(wèn)題。


          為此,需要在定義系統(tǒng)主數(shù)據(jù)的情況下,構(gòu)建主數(shù)據(jù)管理中央庫(kù),解決主數(shù)據(jù)碎片問(wèn)題。可以從各業(yè)務(wù)系統(tǒng)抽取數(shù)據(jù),并進(jìn)行數(shù)據(jù)融合,形成完備的主數(shù)據(jù)信息,然后再將主數(shù)據(jù)信息分發(fā)給各業(yè)務(wù)系統(tǒng),保證各業(yè)務(wù)系統(tǒng)中這些信息的準(zhǔn)確性和完整性。這樣就形成了公共的重要屬性由主數(shù)據(jù)管理系統(tǒng)管理、各業(yè)務(wù)系統(tǒng)的特定屬性由各系統(tǒng)獨(dú)立管理的模式。

          在構(gòu)建主數(shù)據(jù)管理庫(kù)時(shí),首先從多個(gè)異構(gòu)的業(yè)務(wù)子系統(tǒng)中以ETL的方式抽取關(guān)鍵數(shù)據(jù),然后利用元數(shù)據(jù)庫(kù)對(duì)其中的編碼、描述進(jìn)行標(biāo)準(zhǔn)化。接著通過(guò)匹配算法完成對(duì)數(shù)據(jù)的錯(cuò)誤消除和信息融合各個(gè)業(yè)務(wù)系統(tǒng)的差異性數(shù)據(jù)。對(duì)于匹配不到的孤立信息,監(jiān)控跟蹤,以及人工處理。同時(shí)進(jìn)匹配算法,最后將歸整好的主數(shù)據(jù)信息并入主數(shù)據(jù)庫(kù)。


          3、數(shù)據(jù)質(zhì)量管控子系統(tǒng)

          從數(shù)據(jù)產(chǎn)生過(guò)程來(lái)看,醫(yī)療數(shù)據(jù)質(zhì)量問(wèn)題主要來(lái)源于3個(gè)方面。

          • 原始信息采集有誤差。在醫(yī)療系統(tǒng)內(nèi)數(shù)據(jù)采集主要通過(guò)手工方式錄入,在醫(yī)生或護(hù)士輸入信息的過(guò)程中,可能會(huì)有意或無(wú)意地將數(shù)據(jù)錯(cuò)誤引入系統(tǒng)。
          • 數(shù)據(jù)融合過(guò)程發(fā)生問(wèn)題。在對(duì)不同來(lái)源的數(shù)據(jù)進(jìn)行融合時(shí),數(shù)據(jù)格式和語(yǔ)義可能會(huì)有誤差或不一致,導(dǎo)致融合結(jié)果有錯(cuò) 。
          • 與數(shù)據(jù)的應(yīng)用場(chǎng)景不匹配。例如,如果要進(jìn)行病例統(tǒng)計(jì),現(xiàn)有臨床電子病歷數(shù)據(jù)就能滿足統(tǒng)計(jì)場(chǎng)景的需求。但如果要做大腸癌療效分析,現(xiàn)有臨床電子病歷數(shù)據(jù)就難以滿足分析場(chǎng)景的要求,還需補(bǔ)充病理數(shù)據(jù)。


          在醫(yī)療數(shù)據(jù)治理過(guò)程中,需要了解最終的使用場(chǎng)景,也需要從業(yè)務(wù)系統(tǒng)的數(shù)據(jù)源頭控制質(zhì)量,并保證每個(gè)融合和加工過(guò)程的正確性。另外出現(xiàn)數(shù)據(jù)錯(cuò)誤時(shí),進(jìn)行數(shù)據(jù)修正。

          因此質(zhì)量管控平臺(tái)包括了數(shù)據(jù)質(zhì)量監(jiān)控、數(shù)據(jù)質(zhì)量評(píng)估以及數(shù)據(jù)修正。數(shù)據(jù)質(zhì)量監(jiān)控主要針對(duì)從業(yè)務(wù)系統(tǒng)抽取的或是從外部傳送的接口數(shù)據(jù),從及時(shí)性、有效性和完整性等幾個(gè)指標(biāo)監(jiān)測(cè)接口內(nèi)容本身的數(shù)據(jù)質(zhì)量問(wèn)題,對(duì)采集程序進(jìn)行監(jiān)控;數(shù)據(jù)質(zhì)量評(píng)估是指對(duì)融合后的數(shù)據(jù)進(jìn)行質(zhì)量評(píng)估。


          主站蜘蛛池模板: 久久无码人妻一区二区三区| 肥臀熟女一区二区三区| 91精品国产一区| 中文字幕日韩一区| 制服丝袜一区在线| 国产精品毛片VA一区二区三区| 日本中文字幕一区二区有码在线| 亚洲AV成人一区二区三区AV| 国产品无码一区二区三区在线蜜桃| 久久se精品一区二区国产| 久久影院亚洲一区| 一本岛一区在线观看不卡| 国产麻豆剧果冻传媒一区| 久久久久人妻精品一区三寸| 亚洲综合色一区二区三区| 国产精品久久一区二区三区| 亚洲乱色熟女一区二区三区丝袜| 超清无码一区二区三区| 无码人妻精品一区二区蜜桃百度| 国产一区中文字幕在线观看| 夜精品a一区二区三区| 国产乱码精品一区二区三区四川人| 国产免费一区二区三区| 亚洲国产精品一区二区久| 午夜性色一区二区三区免费不卡视频| 久久一区不卡中文字幕| 亚洲AV无码一区二区三区人| 无码国产精品一区二区免费式直播 | 九九久久99综合一区二区| 中文无码精品一区二区三区| 亚洲毛片αv无线播放一区| 国产精品自拍一区| 亚洲视频一区在线观看| 一区二区三区免费高清视频| 亚洲中文字幕久久久一区| 三上悠亚精品一区二区久久| 日本精品一区二区三区在线视频一| 亚洲视频在线一区| 国产区精品一区二区不卡中文| 国产成人AV区一区二区三| 国产精品揄拍一区二区久久|