Presentation is loading. Please wait.

Presentation is loading. Please wait.

© OCS Consulting Analysis software in.NET and SAS ® Jules van der Zalm, OCS Consulting, the Netherlands.

Similar presentations


Presentation on theme: "© OCS Consulting Analysis software in.NET and SAS ® Jules van der Zalm, OCS Consulting, the Netherlands."— Presentation transcript:

1 © OCS Consulting Analysis software in.NET and SAS ® Jules van der Zalm, OCS Consulting, the Netherlands

2 © OCS Consulting Goal of this presentation To show the audience a way to develop an application with a familiarly looking user interface that is based on SAS technology on the background.

3 Agenda Introduction The user interface A simple example The SAS backend Communication A more complex example Programming practices Conclusion Questions © OCS Consulting

4 Introduction Why such applications? What do I need? The components of an application © OCS Consulting

5 Five major components User interface Call to SAS program SAS programs SAS Workspace Server Information Dataset © OCS Consulting

6 Information Dataset Regular SAS dataset in WORK Describes every (changing) element on the user interface Columns like Element Name, Element Type, Value, Enabled Y/N, Visible Y/N Examples later in the presentation © OCS Consulting

7 User Interface Developed independently from SAS Communicates with SAS Any preferred language, also web Can be replaced after completion © OCS Consulting

8 A simple example © OCS Consulting 5+5*5 30 %let calc=5+5*5; %include calculate.sas; /** CALCULATE.SAS **/ data work.calc; result = &calc.; dun; data work.ids; set work.calc; name = CalcResult; type = TextBox; value = put(result, 8.); run; /* End of Program. */ %let calc=5+5*5; %include calculate.sas; /** CALCULATE.SAS **/ data work.calc; result = &calc.; run; data work.ids; set work.calc; name = CalcResult; type = TextBox; value = put(result, 8.); run; /* End of Program. */ dataset work.ids NameTypeValue CalcResultTextBox30

9 The SAS backend SAS Workspace Server UI creates SAS code SAS code is executed by WS © OCS Consulting

10 Communication Two-way communication From UI to SAS: code and macro vars From SAS to UI: information dataset © OCS Consulting

11 A More Complex Example © OCS Consulting FieldValueVis. GrpPatientsY LBVisitVisitN BtnRevertRevertN BtnSaveSaveN LBLabGrp1N LBLabGrp2N et cetera GrpTrialsS14-04-C300Y GrpTrialsS83-01-B12Y GrpTrialsT01-188-V01Y GrpVisitsN

12 A More Complex Example © OCS Consulting %let GrpTrials=S83-01-B12; ===== getPatients.sas ===== data work.ids; set db.patients (where = (trial = &GrpTrials)); field = GrpPatients; value = patno; visible = Y; run; /* End of Program. */ %include getPatients.sas; (where = (trial = &GrpTrials)); S83-01-B12 S83-01-B12 FieldValueVis. GrpPatients00101Y GrpPatients00102Y GrpPatients00104Y GrpPatients00201Y GrpPatients00202Y

13 A More Complex Example © OCS Consulting %let GrpTrials=S83-01-B12; %let GrpPatients=001002; %include DataEntry.sas; ===== DataEntry.sas ===== %createIDSforVisits(tr=&GrpTrials, pt=&GrpPatients); %createIDSforLabGroups(tr=&GrpTrials); %createIDSforLabParams(tr=&GrpTrials); === %createIDSforVisits === work.visits; set ds.visits (where); field = GrpVisits; value = visitname; visible = Y; output; field = LBVisit; value = Visit; visible = Y; output; run; ==%createIDSforLabGroups== proc sql noprint; create table work.labgrps as select distinct(labgrp) as value from ds.labdata; quit; data work.labgrps; set work.labgrps; field = LBLabGrp||_n_; visible = Y; run; ==%createIDSforLabParams==... you get my drift! data work.ids; set work.visits work.labgrps work.labprms; keep field value visible; run; /* End of Program. */

14 A More Complex Example © OCS Consulting FieldValueVis. LBLabGrp1HematologyY LBLabGrp2ChemistryY LBLabGrp3UrinalysisY LB101WBCY LB102RBCY et cetera LB112N LB201-212 Y LB301-306 Y LB307N LB308N et cetera GrpVisitsSCREENINGY GrpVisitsBASELINEY GrpVisitsVISIT 1Y

15 A More Complex Example © OCS Consulting FieldValueVis. Txt101Y Txt102Y et cetera Txt112N Txt201-212Y Txt301-306Y Txt307N et cetera %let GrpTrials=S83-01-B12; %let GrpPatients=00102; %let GrpVisits=BASELINE; %include getLabValues.sas;

16 Some More Information Datasets © OCS Consulting Field TrialName PatNumber Tab1 Tab2 Visit Revert Save Lab1_1 Lab1_2 Lab1_3 Lab2_1 Lab2_2 Lab2_3 Reminder Demography Type GroupBox Tab Label GroupBox Button TextBox Spinner DataGrid Value 4 14 2 work.demog Text S83-01-B12 00408 Data entry Data review Visit BASELINE Revert Save 7.2 6.4 40.0 76 34 3.4 0 work.mdem Vis. 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 End. 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 Color RD GR OR GR RD GR Default 1 1 1

17 Some More Information Datasets Graphs Datagrids PDF or RTF documents Anything you can produce from SAS © OCS Consulting

18 Programming Practices © OCS Consulting

19 Conclusion Users cannot read or edit the application or SAS code Output doesnt require additional validation if programs dont change Important to define design upfront Windows-based interface makes it user friendly © OCS Consulting

20 Web: www.ocs-consulting.nl Email: sasquestions@ocs-consulting.com Questions


Download ppt "© OCS Consulting Analysis software in.NET and SAS ® Jules van der Zalm, OCS Consulting, the Netherlands."

Similar presentations


Ads by Google