Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen...

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

Transcript of Paul Affentranger afca informatik ag. Integrierte, einfache und schnelle Erfassung von medizinischen...

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.