Upload
seppel-baumann
View
105
Download
1
Embed Size (px)
Citation preview
Intensivmedizin-Applikation mit WPF, WCF und LINQ
Paul Affentrangerafca informatik ag
Projekt Ziel
Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme
Umfeld
Grosses Schweizer Universitäts-SpitalIntensivmedizin Kinder1:1 Betreuung60 BenutzerBenutzer “nahe am Patienten”Zeitweise hektischer BetriebKnappe Zeitressourcen bei BenutzernPflegende gelten als „IT-Scheu“
Anforderungen
Ein UI
“Schnell wie auf Papier” Intuitiv bedienbarMobilEinfacher und schneller Benutzerwechsel
UI 1 UI 2 UI 2 UI 4
System1 System2 System3 System4
UI
WS
System1 System2 System3 System4
Übersicht
UI ErfassungWPF auf TabletPC
UI Controlling
MOSS 2007
WebserviceWCF - HTTP
DALLINQ
DBSQL 2005
ExportSSIS
Patienten WSWCF - HTTPSAP
UI Erfassen: Hardware
Motion C5 Medical Tablet PCRobuste BauweiseDesinfiszierbarRFID-, BarcodeleserIntegrierte KameraPortabelWLAN
UI Erfassen: Software
WPF ApplikationWCF AnbindungEntwickelt mit
Visual Studio 2008Expression Blend
SpeziellesUI AbhängigkeitenOn- und Offline Modus
UI Abhängigkeiten
Binding direkt auf Objektmodell„Folge-Updates“ nicht sichtbar:
LösungImplementierung INotifyPropertyChanged:
Nur eine Auswahl möglich
public event PropertyChangedEventHandler PropertyChanged;private void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } }
On- und Offlinemodus
Grundsätzlich immer onlineOfflinemodus = „Notmodus“Umsetzung Offlinemodus:
Command QueueSerialisierung und Deserialisierung mit XmlSerializer der Objekte in lokale XML FilesTimer zum Status Check
XML Serialisierung
private void serializeObjectToFile(Type type, object obj,string file) { XmlSerializer serializer = new XmlSerializer(type); XmlWriterSettings xws = new XmlWriterSettings(); xws.CloseOutput = true; XmlWriter writer = XmlWriter.Create(file, xws); // Serialize the object, and close the TextWriter. serializer.Serialize(writer, obj); writer.Flush(); writer.Close(); }
private object deserialize(Type type, string fileName) { XmlSerializer serializer = new XmlSerializer(type); return serializer.Deserialize(new XmlTextReader(fileName)); }
UI Controlling
FunktionenValidierung und KontrolleExport auslösen
UmsetzungMOSS 2007Infopath Forms Server in WebPart
XmlFormView Web ControlLoad und Save in WebPart
Kommunikation über WCF
UI Controlling Screen
Webservices
UI ErfassungWPF auf TabletPC
UI Controlling
MOSS 2007
WebserviceWCF - HTTP
DALLINQ
DBSQL 2005
ExportSSIS
Patienten WSWCF - HTTPSAP
Webservices
AufgabenLaden und SpeichernProzesseAuthentifizierung
UmsetzungVisual Studio 2008WCF mit wsHttpBinding
Authentifizierung
„Fast-User-Switch“ auf Ebene Webservice
Unpriviligierter User auf Client GerätenBenutzer authentifizieren sich beim Webservice
Username aus Barcode-Scann (Badge)PINClient Code: public bool Login(string userName, string passWord)
{ lws = new LeistungenWS.LeistungenWSClient(); lws.ClientCredentials.Windows.ClientCredential.UserName = userName; lws.ClientCredentials.Windows.ClientCredential.Password = passWord;
… }
Daten
UI ErfassungWPF auf TabletPC
UI Controlling
MOSS 2007
WebserviceWCF - HTTP
DALLINQ
DBSQL 2005
ExportSSIS
Patienten WSWCF - HTTPSAP
Datenzugriff
Data Access Layer (DAL)LINQ to SQLDaten Objekte mit LINQ to SQL DesignerLoads und Save als statische MethodenDAL liefert Business Objekte
DatenbankMS SQL 2005Keine Programmierung auf DB Ebene
ExportMit SQL Server Integration Services (SSIS) realisiert
Ergebnis
Kurze EntwicklungszeitStart Umsetzung November 2007WCF Client in 4 WochenSchulung Januar 2008Produktiv seit Februar 2008
Umsetzung in Zeitplan und BudgetGute Akzeptanz bei den Benutzern
Erfahrungen WCF und LINQ
Einfacher als man denktWCF
Visual Studio 2008 und Blend arbeiten gut zusammenKomfortables Data-Binding Flexibel und schlankDank Blend kurze Einarbeitungszeit
LINQSchnelle Umsetzung dank LINQ to SQL Designer
Benutzerin
… das geht viel schneller als früher !
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.