mandag 29. mars 2010

Applikasjonen som ringte to ganger

Da skal vi hoppe fram til 2006/2007 i applikasjonsloggen. Denne gang skal jeg skrive om bruk av web for å demonstrere/emulere en PC-applikasjons funksjonalitet.

Vi (dvs. jobben og jeg) hadde i oppdrag å lage et system for hjemmepleie over adsl, dette var en modernisering av et system som før hadde vært utviklet for ISDN. Kort fortalt er det et system der trygghetsalarmer erstattes av audiovisuelt utstyr: Et pan/tilt/zoom-kamera er installert ved klientens TV og gir AV-kommunikasjon mellom klient og trygghetssentral over internett. På tryggehetssentralen sitter operatør på et PC-program som kan styre kameraet hjemme hos pasient, og får AV-strøm inn i programmet. Systemet ble kalt TVCare.
Dette var mor-prosjektet, vi skrev det ned til et spesifikt oppdrag for Ullevål sykehus' øyeavdelig: De skulle ha et mindre system for fem-ti klienter, der TVCare-boksen m/kamera ble utplassert hos pasienter post-op, for å kontrollere at de drev korrekt selvmedisinering. Mine oppgaver på dette prosjektet var å konstruere en database som kunne håndtere logging og samtalesesjoner, samt kode et administrativt verktøy for web (PHP), en daemon for overvåkning/kontroll med trafikken over TCP/IP og en telefonsentral for TVCare operatørprogram som lot operatør ringe opp klienter.
Nok om selve scopet, det jeg skulle skrive om her var utviklingen av daemon/telefonsentral, for der brukte jeg web for å emulere handlingene til telefonsentralen i programmet. Dvs. jeg konstruerte først databasen og web, og så måtte jeg få på plass handlingsmønsteret for operatør/klient, med sesjonslogging etc.

Og da er det i gang med popup-vinduer igjen. Dette er en liten applikasjon som utfører alle handlinger til operatør/klient: Meld inn modul, ring som klient/operatør, svar, sett på hold, legg på.



Basis-funksjonaliteten i databasen ble utviklet med dette verktøyet, og vi brukte det i promo-møter før selve systemet var klart. Applikasjonen var en del av mor-applikasjonen TVCare Web Console, her er en skjermdump fra den.



Etter å ha utviklet strukturen og administrasjonsverktøy var turen kommet til å programmere for PC. Språket/applikasjonen vi brukte var Deplhi 7 (Pascal), og jeg lagde først et lite vindu som gjorde akkurat det samme som den lille applikasjonen i popup'en, og som var både daemon og telefonsentral i ett.



Jeg arbeidet i denne lille app'en i flere måneder. Sammen med den utviklet jeg en liten test-applikasjon som skulle emulere TVCare-modulet, som ikke var ferdig utviklet ennå.



Den ser enkel ut og det er ikke lagt vekt på at den skal være grafisk pen, men den har mulighet for både oppringing og autosvar på kontakt fra applikasjonen over, samt å melde sin ip-adresse inn til databasen til gitte intervaller. Den kjørte som en enkeltstående exe-fil, og jeg testet den fra diverse lokasjoner over hele Oslo.

Da all ringefunksjonalitet var klar, splittet jeg sentral og daemon ut i to: Telefonsentral ble skrevet inn i TVCare-programmet, mens daemon ble en frittstående applikasjon som kjørte fra systray.



Telefonsentralen ble slanket litt for å få plass ved siden av videovinduet i programmet, det viktigste var å få med modulnavn og ip. Modulnavn var 'kjente komponister' - en tagg vi valgte for å humanisere dataene da Ullevål ikke ville ha pasientnavn inn i dette systemet.

Daemon fikk en sentral plass i systemet, den kontrollerer alle moduler og kommuniserer også med telefonsentralen i TVCare-programmet.



Våren 2007 var det klart for den store systemtesten, her er en sykepleier fra Ullevål på plass for å teste.



Alt fungerte som det skulle (nesten) og du kan se min fantastiske telefonsentral til høyre for videovinduet i programmet.
Så det som begynte som et popup-vindu var altså blitt til en del av et PC-program for overføring av audio og video. Det ble gjort store endringer underveis, og popup-applikasjonen var ikke lenger kompatibel med databasen da vi testet systemet.
Men den hadde gjort sin nytte.

Om du vil lese mer om dette systemet finnes det en artikkel her:

TVCare telecare project

...

0 kommentarer:

Legg inn en kommentar