summaryrefslogtreecommitdiff
path: root/client/praxisd.h
diff options
context:
space:
mode:
Diffstat (limited to 'client/praxisd.h')
-rw-r--r--client/praxisd.h189
1 files changed, 189 insertions, 0 deletions
diff --git a/client/praxisd.h b/client/praxisd.h
new file mode 100644
index 0000000..1268be7
--- /dev/null
+++ b/client/praxisd.h
@@ -0,0 +1,189 @@
+/* -*- 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__
+
+#include <QObject>
+#include <QString>
+#include <QVector>
+
+#include <QNetworkAccessManager>
+#include <QNetworkRequest>
+
+#include <QByteArray>
+#include <QThread>
+#include <QSemaphore>
+
+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_t> 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<cave_t> CaveVector;
+typedef patient_t Patient;
+typedef QVector<dokmenu_t> DokMenuVector;
+
+class Praxisd : public QObject {
+Q_OBJECT
+public:
+ typedef enum {
+ journal,
+ cavelist,
+ patient,
+ dokmenu,
+ dokmenufile
+ } reply_t;
+
+ Praxisd(QString host, quint16 port);
+
+ void journal_get_by_cpr(QString patientid);
+
+ void diverse_get_cave(QString sogenr);
+
+ void patient_get_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 gotCaveList(CaveVector cave);
+ void gotPatient(Patient patient);
+ void gotDokMenu(DokMenuVector dokmenu);
+ void gotDokMenuFile(QString data);
+
+public slots:
+ void replyFinished(QNetworkReply*);
+
+private:
+ void makeTransfer(reply_t t, QString uri, QMap<QString, QString> params);
+
+ QNetworkAccessManager *manager;
+ QNetworkRequest request;
+
+ QString host;
+ unsigned short int port;
+
+ QMap<QNetworkReply*, reply_t> replytypes;
+};
+
+class PraxisdSync : public QThread {
+Q_OBJECT
+public:
+ PraxisdSync(QString host, unsigned short int port);
+
+ QString journal_get_by_cpr(QString patientid);
+ 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(CaveVector);
+ void gotPatient(Patient);
+ void gotDokMenu(DokMenuVector);
+
+private:
+ QString host;
+ quint16 port;
+
+ QSemaphore rsem;
+ QSemaphore wsem;
+
+ Praxisd::reply_t request_type;
+ QString request_sogenr;
+ QString request_cpr;
+
+ CaveVector cavelist;
+ Patient patient;
+ DokMenuVector dokmenu;
+};
+
+#endif/*__PRACRO_PRAXISD_H__*/