Model Driven Development Presented by Davide Magni and
Model Driven Development Presented by Davide Magni and Andrea Ceiner
The idea Model Driven Engineering (MDE, a. k. a. Model Driven Delopment, MDD) aims to raise the level of abstraction in program specification and increase automation in program development. The idea promoted by MDE is to use models at different levels of abstraction for developing systems, thereby raising the level of abstraction in program specification. An increase of automation in program development is reached by using executable model transformations. from: http: //wiki. hl 7. org/index. php? title=MDD
Topics phi SOLUTION MODEL Design phase Code generation from model to RE
Phi-SOLUTION Design Process RUN Choose or Create RMIM Generate & Deploy Onto PHI RE Bind RMIM to Process Design FORMs Solution MODEL is READY Bind FORMs to Process Bind FORMs to RMIM
PROCESS design
PROCESS model => re <task-node name="create vital signs UI"> <transition to="create vital signs"></transition> </task-node> PROCESS MODEL EXPLORER (PE) <task-node name="create vital signs UI"> <task> <assignment actor-id="#{actor. id}"></assignment> </task> <event type="node-enter"> <action name="end-previous-task-node" expression="#{process. Manager. end. Task. Instance()}" /> <action expression="#{process. Manager. manage. Pagination('/fc_observation_vital. Signs. seam')}" name="main"></action> </event> <transition to="create vital signs"></transition> </task-node> RE
UI design
UI model
UI model => re <? xml version="1. 0" encoding="UTF-8"? > <xmi: XMI xmi: version="2. 0" xmlns: xmi="http: //www. omg. org/XMI" xmlns: components="http: ///components. ecore" xmlns: notation="http: //www. eclipse. org/gmf/runtime/1. 0. 1/notation"> <components: Editor xmi: id="_t. BY 3 w. OCq. Ed 2 -Je. Jr 3 CE 2 TQ"> <button. GB xmi: type="components: Button" xmi: id="_W-rfc. OCz. Ed 2 -Je. Jr 3 CE 2 TQ" name="Button_1231769683687" image="imagesMedical_Report_Search. png" value="Search" mnemonic. Name="SEARCH"/> <combo. Box. GB xmi: type="components: Combo. Box" xmi: id="_P 62 Fw. OCy. Ed 2 -Je. Jr 3 CE 2 TQ" name="Combo. Box_1231769206812" binding="filter. params['vocab_x_Encounter. Admission. Urgency; Ambulatory_PRPA_MT 401001 UV 02[class. Code=ENC, mood. Code=EVN, code=AMB, sta tus. Code=active]. priority. Code = ']" empty. Field="Select. . . "/> <label. GB xmi: type="components: Label" xmi: id="_w. ETPIOCq. Ed 2 -Je. Jr 3 CE 2 TQ" name="Label_1231765986578" value="Patient Surname"/> <text. Box. GB xmi: type="components: Text. Box" xmi: id="_Mya 8 QOCy. Ed 2 -Je. Jr 3 CE 2 TQ" name="Text. Box_1231769185796" binding="filter. params['Ambulatory_PRPA_MT 401001 UV 02[class. Code=ENC, mood. Code=EVN, code=AMB, status. Code=active]. participation[type. Code =ADM]. role[class. Code=ASSIGNED]. player[class. Code=PSN, determiner. Code=INSTANCE]. name. FAM like ']"/> </components: Editor> GUI DESIGNER <h: output. Text id="Label_1231766060515_id" rendered="true" style. Class="Label_1231766060515 skinned. Label" value="#{messages. Label_1231766060515}" > <h: input. Text id="Text. Box_1231769174390_id" style. Class="Text. Box_1231769174390 skinned. Text. Box" required="false" rendered="true" value="#{filter. params['Ambulatory_PRPA_MT 401001 UV 02[class. Code=ENC, mood. Code=EVN, code=AMB, status. Code=active]. participation[type. Code= SBJ, context. Control. Code=OP]. role[class. Code=PAT]. player[class. Code=PSN, determiner. Code=INSTANCE]. name. FAM like ']}"> </h: input. Text>
RIM MODEL MIF v 2 static flat CATALOG EXPLORER RE vocab_x_Encounter. Admission. Urgency; Ambulatory_PRPA_MT 401001 UV 02[class. Code=ENC, mood. Code= EVN, code=AMB, status. Code=active]. priority. Code Ambulatory_PRPA_MT 401001 UV 02[class. Code=ENC, mood. Code=EVN, code=AMB, status. Code=active]. participation[type. Code=ADM]. role[class. Code=ASSIGNED]. player[class. Code=PSN, determiner. Code=INST ANCE]. name. FAM
phi Designer Architecture ECLIPSE PHI DESIGNER PHI JET TEMPLATE PHI Eclipse Plug-ins JET EMITTER PHI Solution Model RIM GMF JET Template GEF EMF XML From OPEN MODEL to RE OHF MIF File (RIM)
RIMBAA WGM proposal 1/2 Actually we have RIMBAA models ready for: Patient Topic Encounter Observation (vital signs 4 tele-monitoring & tele-medicine) Scheduling Check lists (i. e. : QUESTIONNAIRES) History (or RMIMs Versioning) In the next 2 years we will deliver RIMBAA models for HIS Outpatient management (ambulatory) Inpatient management Patient Summary Clinical Pathways (ICTUS, Diabetes, Colon cancer, Breast Cancer, Acute Coronary Disease, Hip prosthesis, Birth)
Proposal 2/2 PHI is OPEN SOURCE and FREE for CONTRIBUTORS Examples of welcome contributes: Other JAVA BASED UI framework . NET deployer Other J 2 EE appl. serv. Deployers New widgets (converters, validators, …) Porting onto newest Eclipse / JBoss versions Integration among the 4 OHT Eclipse based RIMBAA tools (PHI, SMD, Data. Mapper, MDHT)
phi Website PHI wiki: support. phitechnology. it/wiki OHT Forge project: https: //phitechnology. projects. openhealthtools. org/ HL 7 GForge project: http: //gforge. hl 7. org/gf/project/phitechnology/
Davide Magni: davide. magni@italtbs. com Andrea Ceiner: andrea. ceiner@italtbs. com
- Slides: 15