diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/VERSION | 1 | ||||
| -rw-r--r-- | client/client.pro | 18 | ||||
| -rw-r--r-- | client/docgen/docgen.cc | 13 | ||||
| -rw-r--r-- | client/docgen/docgen.pro | 18 | ||||
| -rw-r--r-- | client/docgen/highlight.cc | 1 | ||||
| -rw-r--r-- | client/lua.cc | 2 | ||||
| -rw-r--r-- | client/luapraxisd.cc | 293 | ||||
| -rw-r--r-- | client/praxisd.cc | 585 | ||||
| -rw-r--r-- | client/praxisd.h | 238 | 
9 files changed, 37 insertions, 1132 deletions
| diff --git a/client/VERSION b/client/VERSION new file mode 100644 index 0000000..d3f0c49 --- /dev/null +++ b/client/VERSION @@ -0,0 +1 @@ +VERSION="2.2.4" diff --git a/client/client.pro b/client/client.pro index 43f568f..f17faf0 100644 --- a/client/client.pro +++ b/client/client.pro @@ -5,7 +5,7 @@ CONFIG += debug  TEMPLATE = app  TARGET = pracro  DEPENDPATH += . widgets -INCLUDEPATH += . widgets +INCLUDEPATH += . widgets ../praxisdif/qt  RESOURCES += client.qrc  QT += core gui network xml sql svg @@ -16,7 +16,8 @@ debug {  	DEFINES+=USE_DEBUG  } -DEFINES+=VERSION=\\\"2.2.4\\\" +include(VERSION) +DEFINES+=VERSION=\\\"$$VERSION\\\"  # For Qt5  contains(QT_VERSION, ^5.*) { @@ -46,7 +47,6 @@ HEADERS += \  	launcherwindow.h \  	lua.h \  	luadb.h \ -	../server/src/luapraxisd.h \  	luawidget.h \  	macro.h \  	macrowindow.h \ @@ -54,7 +54,6 @@ HEADERS += \  	macrodrawer.h \  	messagebox.h \  	netcom.h \ -	praxisd.h \  	resumewidget.h \  	template.h \  	shortcuttooltip.h \ @@ -85,7 +84,9 @@ HEADERS += \  	widgets/checkgroupbox.h \  	widgets/window.h \  	widgets/altcombobox.h \ -	widgets/metawidget.h +	widgets/metawidget.h \ +	../praxisdif/curl/luapraxisd.h \ +	../praxisdif/qt/praxisd.h  SOURCES += \  	pracro.cc \ @@ -95,7 +96,6 @@ SOURCES += \  	launcherwindow.cc \  	lua.cc \  	luadb.cc \ -	luapraxisd.cc \  	luawidget.cc \  	macro.cc \  	macrowindow.cc \ @@ -103,7 +103,6 @@ SOURCES += \  	macrodrawer.cc \  	messagebox.cc \  	netcom.cc \ -	praxisd.cc \  	resumewidget.cc \  	template.cc \  	shortcuttooltip.cc \ @@ -133,6 +132,9 @@ SOURCES += \  	widgets/checkgroupbox.cc \  	widgets/window.cc \  	widgets/altcombobox.cc \ -	widgets/metawidget.cc +	widgets/metawidget.cc \ +	../praxisdif/qt/luapraxisd.cc \ +	../praxisdif/qt/praxisd.cc +  TRANSLATIONS = pracro_dk.ts diff --git a/client/docgen/docgen.cc b/client/docgen/docgen.cc index 4eb2e08..181b82c 100644 --- a/client/docgen/docgen.cc +++ b/client/docgen/docgen.cc @@ -41,6 +41,7 @@  #include "generate.h"  #define WIDGETS_DIR "../widgets" +#define PRAXISDIF_DIR "../../praxisdif/curl"  #define SERVER_DIR "../../server/src"  #define CLIENT_DIR ".."  #define OUTPUT "html" @@ -204,6 +205,18 @@ int main(int argc, char *argv[])      }    } +  // Praxisdif +  { +    QDir dir(PRAXISDIF_DIR); +    QStringList filter; filter << "*.h"; +    dir.setNameFilters(filter); +    if(!dir.exists()) return 1; +    QFileInfoList inflst = dir.entryInfoList(QDir::Files); +    foreach(QFileInfo inf, inflst) { +      files.append(inf.absoluteFilePath()); +    } +  } +    foreach(QString file, files) {      Doc doc = parse(file);      if(doc.title != "" || doc.tag != "" || doc.classname != "") diff --git a/client/docgen/docgen.pro b/client/docgen/docgen.pro index 4521347..73e7ed2 100644 --- a/client/docgen/docgen.pro +++ b/client/docgen/docgen.pro @@ -7,12 +7,12 @@ INCLUDEPATH += . .. ../widgets  QT += core gui xml svg network sql  RESOURCES += ../client.qrc -include(../../VERSION) +include(../VERSION)  DEFINES+=VERSION=\\\"$$VERSION\\\"  win32 {    LIBPATH += lua/lib -  INCLUDEPATH += lua/include +  INCLUDEPATH += lua/include ../../praxisdif/qt    LIBS += -llua51    DEFINES += HOST_WIN32  } @@ -34,8 +34,6 @@ SOURCES += \  	../lua.cc \  	../luawidget.cc \  	../luadb.cc \ -	../luapraxisd.cc \ -	../praxisd.cc \  	../messagebox.cc \  	../macrowindow.cc \  	../collapser.cc \ @@ -46,6 +44,7 @@ SOURCES += \  	../header.cc \  	../macrodrawer.cc \  	../aboutbox.cc \ +	../shortcuttooltip.cc \  	../widgets/common.cc \  	../widgets/widget.cc \  	../widgets/label.cc \ @@ -64,7 +63,9 @@ SOURCES += \  	../widgets/checkgroupbox.cc \  	../widgets/window.cc \  	../widgets/altcombobox.cc \ -	../widgets/metawidget.cc +	../widgets/metawidget.cc \ +	../../praxisdif/qt/luapraxisd.cc \ +	../../praxisdif/qt/praxisd.cc  HEADERS += \  	genimage.h \ @@ -73,7 +74,6 @@ HEADERS += \  	doc.h \  	highlight.h \  	../expandbutton.h \ -	../praxisd.h \  	../template.h \  	../debug.h \  	../lua.h \ @@ -90,6 +90,7 @@ HEADERS += \  	../header.h \  	../macrodrawer.h \  	../aboutbox.h \ +	../shortcuttooltip.h \  	../widgets.h \  	../widgets/common.h \  	../widgets/widget.h \ @@ -109,4 +110,7 @@ HEADERS += \  	../widgets/checkgroupbox.h \  	../widgets/window.h \  	../widgets/altcombobox.h \ -	../widgets/metawidget.h +	../widgets/metawidget.h \ +	../../praxisdif/qt/luapraxisd.h \ +	../../praxisdif/curl/luapraxisd.h \ +	../../praxisdif/qt/praxisd.h diff --git a/client/docgen/highlight.cc b/client/docgen/highlight.cc index 0857320..018cf4f 100644 --- a/client/docgen/highlight.cc +++ b/client/docgen/highlight.cc @@ -169,4 +169,5 @@ QString highlight(QString code, lang_t lang)    case xml:      return highlight_xml(code);    } +  return "";  } diff --git a/client/lua.cc b/client/lua.cc index f017986..cec7215 100644 --- a/client/lua.cc +++ b/client/lua.cc @@ -32,7 +32,7 @@  #include "luawidget.h"  #include "luadb.h" -#include "../server/src/luapraxisd.h" +#include "../praxisdif/curl/luapraxisd.h"  #include "debug.h" diff --git a/client/luapraxisd.cc b/client/luapraxisd.cc deleted file mode 100644 index 3b8e430..0000000 --- a/client/luapraxisd.cc +++ /dev/null @@ -1,293 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set et sw=2 ts=2: */ -/*************************************************************************** - *            luapraxisd.cc - * - *  Thu May  5 11:16:20 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. - */ -#include "../server/src/luapraxisd.h" - -#include "praxisd.h" - -#include <lauxlib.h> -#include <strings.h> - -#include "debug.h" - -#define luaL_checkbool(L, i) \ -  (lua_isboolean(L,i) ? lua_toboolean(L,i) : luaL_checkint(L,i)) - -typedef struct px_userdata { -  PraxisdSync *px; -} px_userdata; - -int px_addcave(lua_State *L) -{ -  lua_pushstring(L, "Add cave not implemented on client."); -  lua_error(L); -  return 0; -} - -int px_addbehandling(lua_State *L) -{ -  lua_pushstring(L, "Add behandling not implemented on client."); -  lua_error(L); -  return 0; -} - -int px_adddiagnose(lua_State *L) -{ -  lua_pushstring(L, "Add diagnose not implemented on client."); -  lua_error(L); -  return 0; -} - -int px_getcave(lua_State *L) -{ -  px_userdata *pxu; -  pxu = (px_userdata *)luaL_checkudata(L, 1, "Praxisd"); -  luaL_argcheck(L, pxu, 1, "Praxisd expected"); - -  const char *cpr = luaL_checkstring(L, 2); - -  QVector<QString> cavelist; - -  Patient patient = pxu->px->patient_get_by_cpr(cpr); -  if(pxu->px->hasError()) { -    lua_pushstring(L, pxu->px->errorString().toStdString().c_str()); -    lua_error(L); -    return 1; -  } -  QVector<sogeord_t>::iterator i = patient.sogeord.begin(); -  while(i != patient.sogeord.end()) { -    QString cavesogeord = i->sogenr;//.mid(1, i->sogenr.size() - 1); -    QVector<cave_t> cave = pxu->px->diverse_get_cave(cavesogeord); -    if(cave.size() == 1) { -      if(cave[0].cave != "ANDET") cavelist.push_back(cave[0].cave); -      else cavelist.push_back(i->sogetxt); -    } -    i++; -  } - -  lua_createtable(L, 0, cavelist.size()); -  int top = lua_gettop(L); - -  for(int i = 0; i < cavelist.size(); i++) { -    QString c = cavelist[i]; -    DEBUG(cavelist, "CAVE '%s'\n", c.toStdString().c_str()); -    lua_pushstring(L, c.toStdString().c_str()); -    lua_rawseti(L, top, i); -  } - -  return 1; -} - -int px_getbehandling(lua_State *L) -{ -  px_userdata *pxu; -  pxu = (px_userdata *)luaL_checkudata(L, 1, "Praxisd"); -  luaL_argcheck(L, pxu, 1, "Praxisd expected"); - -  const char *cpr = luaL_checkstring(L, 2); - -  QVector<QString> behandlinglist; - -  Patient patient = pxu->px->patient_get_by_cpr(cpr); -  if(pxu->px->hasError()) { -    lua_pushstring(L, pxu->px->errorString().toStdString().c_str()); -    lua_error(L); -    return 1; -  } -  QVector<sogeord_t>::iterator i = patient.sogeord.begin(); -  while(i != patient.sogeord.end()) { -    QString behandlingsogeord = i->sogenr;//.mid(1, i->sogenr.size() - 1); -    QVector<behandling_t> behandling = pxu->px->diverse_get_behandling(behandlingsogeord); -    if(behandling.size() == 1) behandlinglist.push_back(i->sogetxt); -    i++; -  } - -  lua_createtable(L, 0, behandlinglist.size()); -  int top = lua_gettop(L); - -  for(int i = 0; i < behandlinglist.size(); i++) { -    QString c = behandlinglist[i]; -    DEBUG(behandlinglist, "BEHANDLING '%s'\n", c.toStdString().c_str()); -    lua_pushstring(L, c.toStdString().c_str()); -    lua_rawseti(L, top, i); -  } - -  return 1; -} - -int px_getdiagnose(lua_State *L) -{ -  px_userdata *pxu; -  pxu = (px_userdata *)luaL_checkudata(L, 1, "Praxisd"); -  luaL_argcheck(L, pxu, 1, "Praxisd expected"); - -  const char *cpr = luaL_checkstring(L, 2); - -  QVector<QString> diagnoselist; - -  Patient patient = pxu->px->patient_get_by_cpr(cpr); -  if(pxu->px->hasError()) { -    lua_pushstring(L, pxu->px->errorString().toStdString().c_str()); -    lua_error(L); -    return 1; -  } -  QVector<sogeord_t>::iterator i = patient.sogeord.begin(); -  while(i != patient.sogeord.end()) { -    QString diagnosesogeord = i->sogenr;//.mid(1, i->sogenr.size() - 1); -    QVector<diagnose_t> diagnose = pxu->px->diverse_get_diagnose(diagnosesogeord); -    if(diagnose.size() == 1) diagnoselist.push_back(i->sogetxt); -    i++; -  } - -  lua_createtable(L, 0, diagnoselist.size()); -  int top = lua_gettop(L); - -  for(int i = 0; i < diagnoselist.size(); i++) { -    QString c = diagnoselist[i]; -    DEBUG(diagnoselist, "DIAGNOSE '%s'\n", c.toStdString().c_str()); -    lua_pushstring(L, c.toStdString().c_str()); -    lua_rawseti(L, top, i); -  } - -  return 1; -} - -int px_cavelist(lua_State *L) -{ -  px_userdata *pxu; -  pxu = (px_userdata *)luaL_checkudata(L, 1, "Praxisd"); -  luaL_argcheck(L, pxu, 1, "Praxisd expected"); - -  QVector<cave_t> cavelist = pxu->px->diverse_get_cave("C"); -  if(pxu->px->hasError()) { -    lua_pushstring(L, pxu->px->errorString().toStdString().c_str()); -    lua_error(L); -    return 1; -  } - -  lua_createtable(L, 0, cavelist.size()); -  int top = lua_gettop(L); - -  for(size_t i = 0; i < (size_t)cavelist.size(); i++) { -    QString c = cavelist[i].cave; -    DEBUG(cavelist, "CAVE '%s'\n", c.toStdString().c_str()); -    lua_pushstring(L, c.toStdString().c_str()); -    lua_rawseti(L, top, i); -  } - -  return 1; -} - -int px_behandlinglist(lua_State *L) -{ -  px_userdata *pxu; -  pxu = (px_userdata *)luaL_checkudata(L, 1, "Praxisd"); -  luaL_argcheck(L, pxu, 1, "Praxisd expected"); - -  QVector<behandling_t> behandlinglist = pxu->px->diverse_get_behandling("C"); -  if(pxu->px->hasError()) { -    lua_pushstring(L, pxu->px->errorString().toStdString().c_str()); -    lua_error(L); -    return 1; -  } - -  lua_createtable(L, 0, behandlinglist.size()); -  int top = lua_gettop(L); - -  for(size_t i = 0; i < (size_t)behandlinglist.size(); i++) { -    QString c = behandlinglist[i].behandling; -    DEBUG(behandlinglist, "BEHANDLING '%s'\n", c.toStdString().c_str()); -    lua_pushstring(L, c.toStdString().c_str()); -    lua_rawseti(L, top, i); -  } - -  return 1; -} - -int px_diagnoselist(lua_State *L) -{ -  px_userdata *pxu; -  pxu = (px_userdata *)luaL_checkudata(L, 1, "Praxisd"); -  luaL_argcheck(L, pxu, 1, "Praxisd expected"); - -  QVector<diagnose_t> diagnoselist = pxu->px->diverse_get_diagnose("C"); -  if(pxu->px->hasError()) { -    lua_pushstring(L, pxu->px->errorString().toStdString().c_str()); -    lua_error(L); -    return 1; -  } - -  lua_createtable(L, 0, diagnoselist.size()); -  int top = lua_gettop(L); - -  for(size_t i = 0; i < (size_t)diagnoselist.size(); i++) { -    QString c = diagnoselist[i].diagnose; -    DEBUG(diagnoselist, "DIAGNOSE '%s'\n", c.toStdString().c_str()); -    lua_pushstring(L, c.toStdString().c_str()); -    lua_rawseti(L, top, i); -  } - -  return 1; -} - -int px_new(lua_State *L) -{ -  const char *host = luaL_checkstring(L, 1); -  int port = luaL_checknumber(L, 2); - -  px_userdata *pxu; -  pxu = (px_userdata *)lua_newuserdata(L, sizeof(px_userdata)); - -  luaL_getmetatable(L, "Praxisd"); -  lua_setmetatable(L, -2); - -  pxu->px = new PraxisdSync(host, port); - -  return 1; -} - -int px_gc(lua_State *L) -{ -  px_userdata *pxu; - -  pxu = (px_userdata *)luaL_checkudata(L, 1, "Praxisd"); -  luaL_argcheck(L, pxu, 1, "Praxisd expected"); - -  delete pxu->px; - -  return 0; -} - -void register_praxisd(lua_State *L) -{ -  luaL_newmetatable(L, "Praxisd"); -  lua_pushliteral(L, "__index"); -  lua_pushvalue(L, -2); -  lua_rawset(L, -3); -  luaL_register(L, NULL, px_meths); -  luaL_openlib (L, "Praxisd", px_funcs, 0); -} diff --git a/client/praxisd.cc b/client/praxisd.cc deleted file mode 100644 index d0bb280..0000000 --- a/client/praxisd.cc +++ /dev/null @@ -1,585 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set et sw=2 ts=2: */ -/*************************************************************************** - *            praxisd.cc - * - *  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. - */ -#include "praxisd.h" - -#include <stdio.h> - -#include <QDomDocument> - -#include <QtNetwork> - -#define DOCAVE(x) if(element.tagName() == #x) cave.x = element.text() -static CaveVector getCaveList(QByteArray data) -{ -  QDomDocument doc; -  doc.setContent(data); - -  CaveVector cavelist; - -  QDomNode praxisd = doc.documentElement(); -  QDomNodeList nodes = praxisd.childNodes(); -  for(int i = 0; i < nodes.count(); i++) { -    QDomNode node = nodes.at(i); -    QDomElement element = node.toElement(); -    if(element.tagName() == "div_cave") { - -      cave_t cave; -      cave.sogenr = element.attribute("sogenr"); - -      QDomNodeList nodes = element.childNodes(); -      for(int j = 0; j < nodes.count(); j++) { -        QDomNode node = nodes.at(j); -        QDomElement element = node.toElement(); -        DOCAVE(cave); -        DOCAVE(bemaerkning1); -        DOCAVE(bemaerkning2); -        DOCAVE(bemaerkning3); -      } - -      cavelist.push_back(cave); -    } -  } - -  return cavelist; -} - -#define DOBEHANDLING(x) if(element.tagName() == #x) behandling.x = element.text() -static BehandlingVector getBehandlingList(QByteArray data) -{ -  QDomDocument doc; -  doc.setContent(data); - -  BehandlingVector behandlinglist; - -  QDomNode praxisd = doc.documentElement(); -  QDomNodeList nodes = praxisd.childNodes(); -  for(int i = 0; i < nodes.count(); i++) { -    QDomNode node = nodes.at(i); -    QDomElement element = node.toElement(); -    if(element.tagName() == "div_behandling") { - -      behandling_t behandling; -      behandling.sogenr = element.attribute("sogenr"); - -      QDomNodeList nodes = element.childNodes(); -      for(int j = 0; j < nodes.count(); j++) { -        QDomNode node = nodes.at(j); -        QDomElement element = node.toElement(); -        DOBEHANDLING(kode); -        DOBEHANDLING(behandling); -        DOBEHANDLING(bemaerkning); -        DOBEHANDLING(udregning); -      } - -      behandlinglist.push_back(behandling); -    } -  } - -  return behandlinglist; -} - -#define DODIAGNOSE(x) if(element.tagName() == #x) diagnose.x = element.text() -static DiagnoseVector getDiagnoseList(QByteArray data) -{ -  QDomDocument doc; -  doc.setContent(data); - -  DiagnoseVector diagnoselist; - -  QDomNode praxisd = doc.documentElement(); -  QDomNodeList nodes = praxisd.childNodes(); -  for(int i = 0; i < nodes.count(); i++) { -    QDomNode node = nodes.at(i); -    QDomElement element = node.toElement(); -    if(element.tagName() == "div_diagnose") { - -      diagnose_t diagnose; -      diagnose.sogenr = element.attribute("sogenr"); - -      QDomNodeList nodes = element.childNodes(); -      for(int j = 0; j < nodes.count(); j++) { -        QDomNode node = nodes.at(j); -        QDomElement element = node.toElement(); -        DODIAGNOSE(kode); -        DODIAGNOSE(diagnose); -        DODIAGNOSE(bemaerkning); -      } - -      diagnoselist.push_back(diagnose); -    } -  } - -  return diagnoselist; -} - -#define DOPATIENT(x) if(element.tagName() == #x) patient.x = element.text() -static Patient getPatient(QByteArray data) -{ -  QDomDocument doc; -  doc.setContent(data); - -  Patient patient; - -  QDomNode praxisd = doc.documentElement(); -  QDomNode patnode = praxisd.firstChild(); - -  QDomElement patelement = patnode.toElement(); -  patient.cpr = patelement.attribute("cpr"); - -  QDomNodeList nodes = patnode.childNodes(); -  for(int i = 0; i < nodes.count(); i++) { -    QDomNode node = nodes.at(i); -    QDomElement element = node.toElement(); - -    DOPATIENT(fornavne); -    DOPATIENT(efternavn); -    DOPATIENT(stilling); -    DOPATIENT(gade); -    DOPATIENT(by); -    DOPATIENT(telefonnumre); -    DOPATIENT(sikringsgr); -    DOPATIENT(amtsnr); -    DOPATIENT(sygekontor); -    DOPATIENT(henvnr); -    DOPATIENT(frilinie1); -    DOPATIENT(frilinie2); -    DOPATIENT(frilinie3); -    DOPATIENT(frilinie4); -    DOPATIENT(frilinie5); - -    if(element.tagName() == "sogeords") { -      QDomNodeList nodes = element.childNodes(); -      for(int j = 0; j < nodes.count(); j++) { -        sogeord_t sogeord; -        QDomNode node = nodes.at(j); -        QDomElement element = node.toElement(); -        sogeord.sogenr = element.attribute("sogenr"); -        sogeord.sogedato = element.attribute("sogedato"); -        sogeord.sogetxt = element.text(); -        patient.sogeord.push_back(sogeord); -      } -    } - -    DOPATIENT(ydernr); -    DOPATIENT(created); -    DOPATIENT(donottouch); -    DOPATIENT(visus); -    DOPATIENT(labkort); -    DOPATIENT(medkort); -    DOPATIENT(jlock); -    DOPATIENT(unknown1); -    DOPATIENT(henvdato); -    DOPATIENT(aarhund); -    DOPATIENT(fakturadato); -    DOPATIENT(fakturabelob); -    DOPATIENT(betaldato); -    DOPATIENT(betalbelob); -    DOPATIENT(jdato); -    DOPATIENT(unknown250); -    DOPATIENT(unknown251); -    DOPATIENT(jtime); -  } - -  return patient; -} - -#define DODOKMENU(x) if(element.tagName() == #x) dokmenu.x = element.text() -static DokMenuVector getDokMenu(QByteArray data) -{ -  QDomDocument doc; -  doc.setContent(data); - -  DokMenuVector dokmenus; - -  QDomNode praxisd = doc.documentElement(); -  QDomNodeList nodes = praxisd.childNodes(); -  for(int i = 0; i < nodes.count(); i++) { -    QDomNode node = nodes.at(i); -    QDomElement element = node.toElement(); -    if(element.tagName() == "dokmenu") { -      dokmenu_t dokmenu; -      dokmenu.cpr = element.attribute("cpr"); - -      QDomNodeList nodes = element.childNodes(); -      for(int j = 0; j < nodes.count(); j++) { -        QDomNode node = nodes.at(j); -        QDomElement element = node.toElement(); -        DODOKMENU(group); -        DODOKMENU(subject); -        if(element.tagName() == "filename") { -          dokmenu.filename = element.text(); -          dokmenu.filesize = element.attribute("filesize").toUInt(); -          dokmenu.date = element.attribute("date"); -        } -      } - -      dokmenus.push_back(dokmenu); -    } -  } - -  return dokmenus; -} - -Praxisd::Praxisd(QString host, unsigned short int port) -{ -  qRegisterMetaType<CaveVector>("CaveVector"); -  qRegisterMetaType<Patient>("Patient"); -  qRegisterMetaType<DokMenuVector>("DokMenuVector"); - -  QUrl url; -  url.setHost(host); -  url.setPort(port); -  url.setScheme("http"); - -  request.setUrl(url); - -  manager = new QNetworkAccessManager(this); -  connect(manager, SIGNAL(finished(QNetworkReply*)), -          this, SLOT(replyFinished(QNetworkReply*))); -} - -void Praxisd::replyFinished(QNetworkReply *reply) -{ -  if(reply->error() == QNetworkReply::NoError) { - -    reply_t type = replytypes[reply]; -    switch(type) { -    case journal: -      emit gotJournal(reply->readAll()); -      break; - -    case cavelist: -      emit gotCaveList(getCaveList(reply->readAll())); -      break; - -    case behandlinglist: -      emit gotBehandlingList(getBehandlingList(reply->readAll())); -      break; - -    case diagnoselist: -      emit gotDiagnoseList(getDiagnoseList(reply->readAll())); -      break; - -    case patient: -      emit gotPatient(getPatient(reply->readAll())); -      break; - -    case dokmenu: -      emit gotDokMenu(getDokMenu(reply->readAll())); -      break; - -    case dokmenufile: -      emit gotDokMenuFile(reply->readAll(), reply->rawHeader("Content-Type")); -      break; -    } -  } else { -    emit networkError(reply->errorString() + " - " + reply->readAll()); -  } -  replytypes.erase(replytypes.find(reply)); -} - -void Praxisd::makeTransfer(reply_t t, QString uri, -                           QMap<QString, QString> params) -{ -  request.setRawHeader("User-Agent", "Pracro Client v"VERSION); - -  QUrl url; -  url.setHost(request.url().host()); -  url.setPort(request.url().port()); -  url.setScheme(request.url().scheme()); - -  url.setPath(uri); - -#ifdef QT5 -	QUrlQuery query; -#else -  QUrl &query = url; -#endif - -  QMap<QString, QString>::iterator i = params.begin(); -  while(i != params.end()) { -    query.addQueryItem(i.key(), i.value()); -    i++; -  } - -#ifdef QT5 -	url.setQuery(query); -#endif - -  request.setUrl(url); - -  QNetworkReply* r = manager->get(request); -  replytypes[r] = t; -} - -void Praxisd::journal_get_by_cpr(QString cpr) -{ -  QMap<QString, QString> params; -  params["cpr"] = cpr; -  makeTransfer(journal, "/praxisd/1.0/journal/get_by_cpr", params); -} - -void Praxisd::diverse_get_cave(QString sogenr) -{ -  QMap<QString, QString> params; -  params["sogenr"] = sogenr; -  makeTransfer(cavelist, "/praxisd/1.0/diverse/get_all_by_sogenr", params); -} - -void Praxisd::diverse_get_behandling(QString sogenr) -{ -  QMap<QString, QString> params; -  params["sogenr"] = sogenr; -  makeTransfer(behandlinglist, "/praxisd/1.0/diverse/get_all_by_sogenr", params); -} - -void Praxisd::diverse_get_diagnose(QString sogenr) -{ -  QMap<QString, QString> params; -  params["sogenr"] = sogenr; -  makeTransfer(diagnoselist, "/praxisd/1.0/diverse/get_all_by_sogenr", params); -} - -void Praxisd::patient_get_by_cpr(QString cpr) -{ -  QMap<QString, QString> params; -  params["cpr"] = cpr; -  makeTransfer(patient, "/praxisd/1.0/patient/get_by_cpr", params); -} - -void Praxisd::dokmenu_get_all_by_cpr(QString cpr) -{ -  QMap<QString, QString> params; -  params["cpr"] = cpr; -  makeTransfer(dokmenu, "/praxisd/1.0/dokmenu/get_all_by_cpr", params); -} - -void Praxisd::dokmenu_get_by_cpr_and_name(QString cpr, QString name) -{ -  cpr = cpr; -  name = name; -  // uri = host + "/praxisd/1.0/dokmenu/get_by_cpr_and_name?cpr=" + cpr + "&name=" + name; -  QMap<QString, QString> params; -  params["cpr"] = cpr; -  params["name"] = name; -  makeTransfer(dokmenufile, "/praxisd/1.0/dokmenu/get_by_cpr_and_name", params); -} - -PraxisdSync::PraxisdSync(QString host, unsigned short int port) -{ -  this->host = host; -  this->port = port; -  this->running = true; - -  error = false; -  errorStr = ""; - -  start(); -} - -PraxisdSync::~PraxisdSync() -{ -  this->running = false; -  wsem.release(); -  wait(); -} - -void PraxisdSync::run() -{ -  Praxisd praxisd(host, port); - -  connect(&praxisd, SIGNAL(networkError(QString)), -          this, SLOT(networkError(QString)), Qt::DirectConnection); - -  connect(&praxisd, SIGNAL(gotCaveList(CaveVector)), -          this, SLOT(gotCaveList(CaveVector)), Qt::DirectConnection); -  connect(&praxisd, SIGNAL(gotBehandlingList(BehandlingVector)), -          this, SLOT(gotBehandlingList(BehandlingVector)), Qt::DirectConnection); -  connect(&praxisd, SIGNAL(gotDiagnoseList(DiagnoseVector)), -          this, SLOT(gotDiagnoseList(DiagnoseVector)), Qt::DirectConnection); - -  connect(&praxisd, SIGNAL(gotPatient(Patient)), -          this, SLOT(gotPatient(Patient)), Qt::DirectConnection); - -  connect(&praxisd, SIGNAL(gotDokMenu(DokMenuVector)), -          this, SLOT(gotDokMenu(DokMenuVector)), Qt::DirectConnection); - -  while(true) { -    wsem.acquire(); - -    // Reset error state -    error = false; -    errorStr = ""; -     -    if(this->running == false) break; - -    switch(request_type) { -    case Praxisd::journal: -      break; -    case Praxisd::cavelist: -      praxisd.diverse_get_cave(request_sogenr); -      break; -    case Praxisd::behandlinglist: -      praxisd.diverse_get_behandling(request_sogenr); -      break; -    case Praxisd::diagnoselist: -      praxisd.diverse_get_diagnose(request_sogenr); -      break; -    case Praxisd::patient: -      praxisd.patient_get_by_cpr(request_cpr); -      break; -    case Praxisd::dokmenu: -      praxisd.dokmenu_get_all_by_cpr(request_cpr); -      break; -    case Praxisd::dokmenufile: -      break; -    } - -    exec(); -  } - -  rsem.release(); -} - -bool PraxisdSync::hasError() -{ -  return error; -} - -QString PraxisdSync::errorString() -{ -  return errorStr; -} - -void PraxisdSync::networkError(QString err) -{ -  error = true; -  errorStr = "Network error: " + err; -  rsem.release(); -  quit(); -} - -void PraxisdSync::gotCaveList(CaveVector cl) -{ -  cavelist = cl; -  rsem.release(); -  quit(); -} - -void PraxisdSync::gotBehandlingList(BehandlingVector bl) -{ -  behandlinglist = bl; -  rsem.release(); -  quit(); -} - -void PraxisdSync::gotDiagnoseList(DiagnoseVector dl) -{ -  diagnoselist = dl; -  rsem.release(); -  quit(); -} - -void PraxisdSync::gotPatient(Patient p) -{ -  patient = p; -  rsem.release(); -  quit(); -} - -void PraxisdSync::gotDokMenu(DokMenuVector d) -{ -  dokmenu = d; -  rsem.release(); -  quit(); -} - -QString PraxisdSync::journal_get_by_cpr(QString cpr) -{ -  return cpr; -} - -CaveVector PraxisdSync::diverse_get_cave(QString sogenr) -{ -  request_type = Praxisd::cavelist; -  request_sogenr = sogenr; - -  wsem.release(); -  rsem.acquire(); - -  return cavelist; -} - -BehandlingVector PraxisdSync::diverse_get_behandling(QString sogenr) -{ -  request_type = Praxisd::behandlinglist; -  request_sogenr = sogenr; - -  wsem.release(); -  rsem.acquire(); - -  return behandlinglist; -} - -DiagnoseVector PraxisdSync::diverse_get_diagnose(QString sogenr) -{ -  request_type = Praxisd::diagnoselist; -  request_sogenr = sogenr; - -  wsem.release(); -  rsem.acquire(); - -  return diagnoselist; -} - -Patient PraxisdSync::patient_get_by_cpr(QString cpr) -{ -  request_type = Praxisd::patient; -  request_cpr = cpr; - -  wsem.release(); -  rsem.acquire(); - -  return patient; -} - -DokMenuVector PraxisdSync::dokmenu_get_all_by_cpr(QString cpr) -{ -  request_type = Praxisd::dokmenu; -  request_cpr = cpr; - -  wsem.release(); -  rsem.acquire(); - -  return dokmenu; -} - -QString PraxisdSync::dokmenu_get_by_cpr_and_name(QString cpr, QString name) -{ -  return cpr + name; -} diff --git a/client/praxisd.h b/client/praxisd.h deleted file mode 100644 index 38404da..0000000 --- a/client/praxisd.h +++ /dev/null @@ -1,238 +0,0 @@ -/* -*- 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 kode; -  QString behandling; -  QString bemaerkning; -  QString udregning; -} behandling_t; -//std::vector<behandling_t> diverse_get_behandling(std::string sogenr) - -typedef struct { -  QString sogenr; -  QString kode; -  QString diagnose; -  QString bemaerkning; -} diagnose_t; -// std::vector<diagnose_t> diverse_get_diagnose(std::string 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_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 QVector<behandling_t> BehandlingVector; -typedef QVector<diagnose_t> DiagnoseVector; - -typedef patient_t Patient; -typedef QVector<dokmenu_t> DokMenuVector; - -class Praxisd : public QObject { -Q_OBJECT -public: -  typedef enum { -    journal, -    cavelist, -    behandlinglist, -    diagnoselist, -    patient, -    dokmenu, -    dokmenufile -  } reply_t; - -  Praxisd(QString host, quint16 port); - -  void journal_get_by_cpr(QString patientid); - -  void diverse_get_cave(QString sogenr); -  void diverse_get_behandling(QString sogenr); -  void diverse_get_diagnose(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 gotBehandlingList(BehandlingVector cave); -  void gotDiagnoseList(DiagnoseVector cave); - -  void gotPatient(Patient patient); -  void gotDokMenu(DokMenuVector dokmenu); -  void gotDokMenuFile(QByteArray data, QString mimetype); - -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); -  ~PraxisdSync(); - -  QString journal_get_by_cpr(QString patientid); - -  CaveVector diverse_get_cave(QString sogenr); -  BehandlingVector diverse_get_behandling(QString sogenr); -  DiagnoseVector diverse_get_diagnose(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); - -  bool hasError(); -  QString errorString(); - -  void run(); - -private slots: -  void networkError(QString); - -  void gotCaveList(CaveVector); -  void gotBehandlingList(BehandlingVector); -  void gotDiagnoseList(DiagnoseVector); - -  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; -  BehandlingVector behandlinglist; -  DiagnoseVector diagnoselist; - -  Patient patient; -  DokMenuVector dokmenu; - -  volatile bool running; - -  bool error; -  QString errorStr; -}; - -#endif/*__PRACRO_PRAXISD_H__*/ | 
