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

Preview:

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 !

Paul Affentrangeraffentranger@afca.chhttp://www.afca.ch

afca informatik ag

Realisierung durch:

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

Recommended