22
Intensivmedizin- Applikation mit WPF, WCF und LINQ Paul Affentranger afca informatik ag

Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Embed Size (px)

Citation preview

Page 1: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Intensivmedizin-Applikation mit WPF, WCF und LINQ

Paul Affentrangerafca informatik ag

Page 2: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Projekt Ziel

Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Page 3: Paul Affentranger afca informatik ag. 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“

Page 4: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

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

Page 5: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Übersicht

UI ErfassungWPF auf TabletPC

UI Controlling

MOSS 2007

WebserviceWCF - HTTP

DALLINQ

DBSQL 2005

ExportSSIS

Patienten WSWCF - HTTPSAP

Page 6: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

UI Erfassen: Hardware

Motion C5 Medical Tablet PCRobuste BauweiseDesinfiszierbarRFID-, BarcodeleserIntegrierte KameraPortabelWLAN

Page 7: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

UI Erfassen: Software

WPF ApplikationWCF AnbindungEntwickelt mit

Visual Studio 2008Expression Blend

SpeziellesUI AbhängigkeitenOn- und Offline Modus

Page 8: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

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)); } }

Page 9: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

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

Page 10: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

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)); }

Page 11: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

UI Controlling

FunktionenValidierung und KontrolleExport auslösen

UmsetzungMOSS 2007Infopath Forms Server in WebPart

XmlFormView Web ControlLoad und Save in WebPart

Kommunikation über WCF

Page 12: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

UI Controlling Screen

Page 13: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Webservices

UI ErfassungWPF auf TabletPC

UI Controlling

MOSS 2007

WebserviceWCF - HTTP

DALLINQ

DBSQL 2005

ExportSSIS

Patienten WSWCF - HTTPSAP

Page 14: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Webservices

AufgabenLaden und SpeichernProzesseAuthentifizierung

UmsetzungVisual Studio 2008WCF mit wsHttpBinding

Page 15: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

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;

… }

Page 16: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Daten

UI ErfassungWPF auf TabletPC

UI Controlling

MOSS 2007

WebserviceWCF - HTTP

DALLINQ

DBSQL 2005

ExportSSIS

Patienten WSWCF - HTTPSAP

Page 17: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

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

Page 18: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Ergebnis

Kurze EntwicklungszeitStart Umsetzung November 2007WCF Client in 4 WochenSchulung Januar 2008Produktiv seit Februar 2008

Umsetzung in Zeitplan und BudgetGute Akzeptanz bei den Benutzern

Page 19: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

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

Page 20: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Benutzerin

… das geht viel schneller als früher !

Page 21: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

Paul [email protected]://www.afca.ch

afca informatik ag

Realisierung durch:

Page 22: Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen Parametern und Daten für vier verschiedene Zielsysteme

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