1 / 15

Presented by Davide Magni and Andrea Ceiner

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.

balin
Download Presentation

Presented by Davide Magni and Andrea Ceiner

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Model Driven Development Presented by Davide Magni and Andrea Ceiner

  2. 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

  3. Topics • phi SOLUTION MODEL • Design phase • Code generation from model to RE

  4. 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

  5. PROCESS design

  6. 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

  7. UI design

  8. UI model

  9. 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>

  10. 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

  11. 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

  12. 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)‏

  13. 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)‏

  14. 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/

  15. Davide Magni: davide.magni@italtbs.com Andrea Ceiner: andrea.ceiner@italtbs.com

More Related