150 likes | 332 Views
M odel D riven D evelopment. 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.
E N D
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.hl7.org/index.php?title=MDD
Topics • phi SOLUTION MODEL • Design phase • Code generation from model to RE
Phi-SOLUTION Design FORMs Design Process Choose or Create RMIM Bind RMIM to Process Bind FORMs to Process Generate & Deploy Onto PHI RE Solution MODEL is READY RUN Bind FORMs to RMIM
PROCESS model => re <task-node name="create vital signs UI"> <transition to="create vital signs"></transition> </task-node> MODEL PROCESS 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="#{processManager.endTaskInstance()}" /> <action expression="#{processManager.managePagination('/fc_observation_vitalSigns.seam')}" name="main"></action> </event> <transition to="create vital signs"></transition> </task-node> RE
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="_tBY3wOCqEd2-JeJr3CE2TQ"> <buttonGB xmi:type="components:Button" xmi:id="_W-rfcOCzEd2-JeJr3CE2TQ" name="Button_1231769683687" image="images\Medical_Report_Search.png" value="Search" mnemonicName="SEARCH"/> <comboBoxGB xmi:type="components:ComboBox" xmi:id="_P62FwOCyEd2-JeJr3CE2TQ" name="ComboBox_1231769206812" binding="filter.params['vocab_x_EncounterAdmissionUrgency;Ambulatory_PRPA_MT401001UV02[classCode=ENC,moodCode=EVN,code=AMB,statusCode=active].priorityCode = ']" emptyField="Select..."/> <labelGB xmi:type="components:Label" xmi:id="_wETPIOCqEd2-JeJr3CE2TQ" name="Label_1231765986578" value="Patient Surname"/> <textBoxGB xmi:type="components:TextBox" xmi:id="_Mya8QOCyEd2-JeJr3CE2TQ" name="TextBox_1231769185796" binding="filter.params['Ambulatory_PRPA_MT401001UV02[classCode=ENC,moodCode=EVN,code=AMB,statusCode=active].participation[typeCode=ADM].role[classCode=ASSIGNED].player[classCode=PSN,determinerCode=INSTANCE].name.FAM like ']"/> </components:Editor> GUI DESIGNER <h:outputText id="Label_1231766060515_id" rendered="true" styleClass="Label_1231766060515 skinnedLabel" value="#{messages.Label_1231766060515}" > <h:inputText id="TextBox_1231769174390_id" styleClass="TextBox_1231769174390 skinnedTextBox" required="false" rendered="true" value="#{filter.params['Ambulatory_PRPA_MT401001UV02[classCode=ENC,moodCode=EVN,code=AMB,statusCode=active].participation[typeCode=SBJ,contextControlCode=OP].role[classCode=PAT].player[classCode=PSN,determinerCode=INSTANCE].name.FAM like ']}"> </h:inputText>
RIM MIF v2 static flat MODEL CATALOG EXPLORER RE vocab_x_EncounterAdmissionUrgency;Ambulatory_PRPA_MT401001UV02[classCode=ENC,moodCode=EVN,code=AMB,statusCode=active].priorityCode Ambulatory_PRPA_MT401001UV02[classCode=ENC,moodCode=EVN,code=AMB,statusCode=active].participation[typeCode=ADM].role[classCode=ASSIGNED].player[classCode=PSN,determinerCode=INSTANCE].name.FAM
phi Designer Architecture ECLIPSE PHI JET TEMPLATE PHI DESIGNER PHI Eclipse Plug-ins MIF File (RIM) JET Template RIM GMF OHF JET EMITTER GEF EMF PHI Solution Model XML From OPEN MODEL to RE
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 J2EE appl.serv. Deployers • New widgets (converters, validators,…) • Porting onto newest Eclipse / JBoss versions • Integration among the 4 OHT Eclipse based RIMBAA tools (PHI, SMD, DataMapper, MDHT)
phi Website • PHI wiki: support.phitechnology.it/wiki • OHT Forge project:https://phi-technology.projects.openhealthtools.org/ • HL7 GForge project:http://gforge.hl7.org/gf/project/phi-technology/
Davide Magni: davide.magni@italtbs.com Andrea Ceiner: andrea.ceiner@italtbs.com