From 29b92e2906823878a7c516dc454d9ae8654de8fb Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 12 Oct 2011 08:08:15 +0200 Subject: Initial work on pcp viewer including a new Praxisd class based on Qt-only components. --- client/praxisd.h | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 client/praxisd.h (limited to 'client/praxisd.h') diff --git a/client/praxisd.h b/client/praxisd.h new file mode 100644 index 0000000..dfaac59 --- /dev/null +++ b/client/praxisd.h @@ -0,0 +1,104 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set et sw=2 ts=2: */ +/*************************************************************************** + * praxisd.h + * + * Tue Oct 11 15:20:18 CEST 2011 + * Copyright 2011 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * This file is part of Pracro. + * + * Pracro is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Pracro is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Pracro; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#ifndef __PRACRO_PRAXISD_H__ +#define __PRACRO_PRAXISD_H__ + +class Praxisd { +Q_OBJECT +public; + Praxisd(); + + QString journal_get_by_cpr(QString patientid); + + typedef struct { + QString sogenr; + QString cave; + QString bemaerkning1; + QString bemaerkning2; + QString bemaerkning3; + } cave_t; + QVector diverse_get_cave(QString sogenr); + + typedef struct { + QString sogenr; + QString sogedato; + QString sogetxt; + } sogeord_t; + + typedef struct { + QString cpr; + QString fornavne; + QString efternavn; + QString stilling; + QString gade; + QString by; + QString telefonnumre; + QString sikringsgr; + QString amtsnr; + QString sygekontor; + QString henvnr; + QString frilinie1; + QString frilinie2; + QString frilinie3; + QString frilinie4; + QString frilinie5; + QVector sogeord; + QString ydernr; + QString created; + QString donottouch; + QString visus; + QString labkort; + QString medkort; + QString jlock; + QString unknown1; + QString henvdato; + QString aarhund; + QString fakturadato; + QString fakturabelob; + QString betaldato; + QString betalbelob; + QString jdato; + QString unknown250; + QString unknown251; + QString jtime; + } patient_t; + patient_t patient_get_by_cpr(QString cpr); + + typedef struct { + QString group; + QString subject; + QString filename; + size_t filesize; + QString date; + } dokmenu_t; + QVector dokmenu_get_all_by_cpr(QString cpr); + + QString dokmenu_get_by_cpr_and_name(QString cpr, QString name); +}; + +#endif/*__PRACRO_PRAXISD_H__*/ -- cgit v1.2.3 From ffc19fdcd0845dbd85c2bba990c590fcc5fba670 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 12 Oct 2011 12:09:50 +0200 Subject: Finalised the praxisd communination code. Still untested though... --- client/praxisd.h | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 78 insertions(+), 7 deletions(-) (limited to 'client/praxisd.h') diff --git a/client/praxisd.h b/client/praxisd.h index dfaac59..c9ccaf3 100644 --- a/client/praxisd.h +++ b/client/praxisd.h @@ -28,12 +28,31 @@ #ifndef __PRACRO_PRAXISD_H__ #define __PRACRO_PRAXISD_H__ -class Praxisd { +#include +#include +#include + +#include +#include + +#include +#include +#include + +class Praxisd : public QObject { Q_OBJECT -public; - Praxisd(); +public: + typedef enum { + journal, + cavelist, + patient, + dokmenu, + dokmenufile + } reply_t; - QString journal_get_by_cpr(QString patientid); + Praxisd(QString host, quint16 port); + + void journal_get_by_cpr(QString patientid); typedef struct { QString sogenr; @@ -42,7 +61,7 @@ public; QString bemaerkning2; QString bemaerkning3; } cave_t; - QVector diverse_get_cave(QString sogenr); + void diverse_get_cave(QString sogenr); typedef struct { QString sogenr; @@ -87,18 +106,70 @@ public; QString unknown251; QString jtime; } patient_t; - patient_t patient_get_by_cpr(QString cpr); + void patient_get_by_cpr(QString cpr); typedef struct { + QString cpr; QString group; QString subject; QString filename; size_t filesize; QString date; } dokmenu_t; - QVector dokmenu_get_all_by_cpr(QString cpr); + void dokmenu_get_all_by_cpr(QString cpr); + + void dokmenu_get_by_cpr_and_name(QString cpr, QString name); + +signals: + void gotReply(QByteArray data); + void networkError(QString text); + + void gotJournal(QString data); + void gotCave(QVector cave); + void gotPatient(patient_t patient); + void gotDokMenu(QVector dokmenu); + void gotDokMenuFile(QString data); + +public slots: + void replyFinished(QNetworkReply*); + +private: + void makeTransfer(reply_t t, QString uri, QMap params); + + QNetworkAccessManager *manager; + QNetworkRequest request; + QString host; + unsigned short int port; + + QMap replytypes; +}; + +class PraxisdSync : public QThread { +Q_OBJECT +public: + PraxisdSync(QString host, unsigned short int port); + + QString journal_get_by_cpr(QString patientid); + QVector diverse_get_cave(QString sogenr); + Praxisd::patient_t patient_get_by_cpr(QString cpr); + QVector dokmenu_get_all_by_cpr(QString cpr); QString dokmenu_get_by_cpr_and_name(QString cpr, QString name); + + void run(); + +public slots: + void gotCaveList(QVector); + +private: + Praxisd praxisd; + QSemaphore rsem; + QSemaphore wsem; + + Praxisd::reply_t request_type; + QString request_sogenr; + + QVector cavelist; }; #endif/*__PRACRO_PRAXISD_H__*/ -- cgit v1.2.3 From c73d1d01ba6b57f664c21a189fa9297e2c75456a Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Thu, 13 Oct 2011 10:30:38 +0200 Subject: Finished Praxisd code. Now it works both in sync and async modes. --- client/praxisd.h | 146 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 79 insertions(+), 67 deletions(-) (limited to 'client/praxisd.h') diff --git a/client/praxisd.h b/client/praxisd.h index c9ccaf3..b4b673c 100644 --- a/client/praxisd.h +++ b/client/praxisd.h @@ -39,6 +39,71 @@ #include #include +typedef struct { + QString sogenr; + QString cave; + QString bemaerkning1; + QString bemaerkning2; + QString bemaerkning3; +} cave_t; + +typedef struct { + QString sogenr; + QString sogedato; + QString sogetxt; +} sogeord_t; + +typedef struct { + QString cpr; + QString fornavne; + QString efternavn; + QString stilling; + QString gade; + QString by; + QString telefonnumre; + QString sikringsgr; + QString amtsnr; + QString sygekontor; + QString henvnr; + QString frilinie1; + QString frilinie2; + QString frilinie3; + QString frilinie4; + QString frilinie5; + QVector sogeord; + QString ydernr; + QString created; + QString donottouch; + QString visus; + QString labkort; + QString medkort; + QString jlock; + QString unknown1; + QString henvdato; + QString aarhund; + QString fakturadato; + QString fakturabelob; + QString betaldato; + QString betalbelob; + QString jdato; + QString unknown250; + QString unknown251; + QString jtime; +} patient_t; + +typedef struct { + QString cpr; + QString group; + QString subject; + QString filename; + size_t filesize; + QString date; +} dokmenu_t; + +typedef QVector CaveVector; +typedef patient_t Patient; +typedef QVector DokMenuVector; + class Praxisd : public QObject { Q_OBJECT public: @@ -54,68 +119,10 @@ public: void journal_get_by_cpr(QString patientid); - typedef struct { - QString sogenr; - QString cave; - QString bemaerkning1; - QString bemaerkning2; - QString bemaerkning3; - } cave_t; void diverse_get_cave(QString sogenr); - typedef struct { - QString sogenr; - QString sogedato; - QString sogetxt; - } sogeord_t; - - typedef struct { - QString cpr; - QString fornavne; - QString efternavn; - QString stilling; - QString gade; - QString by; - QString telefonnumre; - QString sikringsgr; - QString amtsnr; - QString sygekontor; - QString henvnr; - QString frilinie1; - QString frilinie2; - QString frilinie3; - QString frilinie4; - QString frilinie5; - QVector sogeord; - QString ydernr; - QString created; - QString donottouch; - QString visus; - QString labkort; - QString medkort; - QString jlock; - QString unknown1; - QString henvdato; - QString aarhund; - QString fakturadato; - QString fakturabelob; - QString betaldato; - QString betalbelob; - QString jdato; - QString unknown250; - QString unknown251; - QString jtime; - } patient_t; void patient_get_by_cpr(QString cpr); - typedef struct { - QString cpr; - QString group; - QString subject; - QString filename; - size_t filesize; - QString date; - } dokmenu_t; void dokmenu_get_all_by_cpr(QString cpr); void dokmenu_get_by_cpr_and_name(QString cpr, QString name); @@ -125,9 +132,9 @@ signals: void networkError(QString text); void gotJournal(QString data); - void gotCave(QVector cave); - void gotPatient(patient_t patient); - void gotDokMenu(QVector dokmenu); + void gotCaveList(CaveVector cave); + void gotPatient(Patient patient); + void gotDokMenu(DokMenuVector dokmenu); void gotDokMenuFile(QString data); public slots: @@ -151,25 +158,30 @@ public: PraxisdSync(QString host, unsigned short int port); QString journal_get_by_cpr(QString patientid); - QVector diverse_get_cave(QString sogenr); - Praxisd::patient_t patient_get_by_cpr(QString cpr); - QVector dokmenu_get_all_by_cpr(QString cpr); + CaveVector diverse_get_cave(QString sogenr); + Patient patient_get_by_cpr(QString cpr); + DokMenuVector dokmenu_get_all_by_cpr(QString cpr); QString dokmenu_get_by_cpr_and_name(QString cpr, QString name); void run(); public slots: - void gotCaveList(QVector); + void gotCaveList(CaveVector); + void gotDokMenu(DokMenuVector); private: - Praxisd praxisd; + QString host; + quint16 port; + QSemaphore rsem; QSemaphore wsem; Praxisd::reply_t request_type; QString request_sogenr; + QString request_cpr; - QVector cavelist; + CaveVector cavelist; + DokMenuVector dokmenu; }; #endif/*__PRACRO_PRAXISD_H__*/ -- cgit v1.2.3 From 3a7e8f62d40f9fc03fd212a71b0f9a9a8b9bd5fe Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Thu, 13 Oct 2011 11:30:41 +0200 Subject: Add Patient request. --- client/praxisd.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'client/praxisd.h') diff --git a/client/praxisd.h b/client/praxisd.h index b4b673c..1268be7 100644 --- a/client/praxisd.h +++ b/client/praxisd.h @@ -167,6 +167,7 @@ public: public slots: void gotCaveList(CaveVector); + void gotPatient(Patient); void gotDokMenu(DokMenuVector); private: @@ -181,6 +182,7 @@ private: QString request_cpr; CaveVector cavelist; + Patient patient; DokMenuVector dokmenu; }; -- cgit v1.2.3