Download presentation
Presentation is loading. Please wait.
Published byBenjamin O'Connor Modified over 10 years ago
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.