diff options
| author | Bent Bisballe Nyeng <deva@aasimon.org> | 2012-05-03 14:48:49 +0200 | 
|---|---|---|
| committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2012-05-03 14:48:49 +0200 | 
| commit | d5f63c03d0e1452013173e5317e3850cce1b6407 (patch) | |
| tree | 3abe116190caaf8a52ca544550fcee9b7b6cb83a /server/src | |
| parent | f7b503a3f110060cc93717e13dcb647e447d05f0 (diff) | |
New praxisd lua functions.
Diffstat (limited to 'server/src')
| -rw-r--r-- | server/src/luapraxisd.cc | 323 | ||||
| -rw-r--r-- | server/src/luapraxisd.h | 165 | 
2 files changed, 427 insertions, 61 deletions
| diff --git a/server/src/luapraxisd.cc b/server/src/luapraxisd.cc index bdaf372..da34d32 100644 --- a/server/src/luapraxisd.cc +++ b/server/src/luapraxisd.cc @@ -144,6 +144,11 @@ int px_adddiagnose(lua_State *L)    return 0;  } +class cavedata_t : public Praxisd::cave_t { +public: +  std::string sogetxt; +  std::string sogedato; +};  int px_getcave(lua_State *L)  {    px_userdata *pxu; @@ -152,7 +157,7 @@ int px_getcave(lua_State *L)    const char *cpr = luaL_checkstring(L, 2); -  std::vector<Praxisd::cave_t> cavelist; +  std::vector<cavedata_t> cavelist;    try {      Praxisd::patient_t pat = pxu->px->patient_get_by_cpr(cpr); @@ -163,8 +168,14 @@ int px_getcave(lua_State *L)          std::string csogenr = s.sogenr.substr(1, s.sogenr.length() - 1);          std::vector<Praxisd::cave_t> cl = pxu->px->diverse_get_cave(csogenr);          if(cl.size() == 1) { -          if(cl[0].cave == "ANDET") cl[0].cave = s.sogetxt; -          cavelist.push_back(cl[0]); +          cavedata_t cdata; +          cdata.cave = cl[0].cave; +          cdata.bemaerkning1 = cl[0].bemaerkning1; +          cdata.bemaerkning2 = cl[0].bemaerkning2; +          cdata.bemaerkning3 = cl[0].bemaerkning3; +          cdata.sogetxt = s.sogetxt; +          cdata.sogedato = s.sogedato; +          cavelist.push_back(cdata);          }        } @@ -174,12 +185,159 @@ int px_getcave(lua_State *L)      error(L, msg);    } -  lua_createtable(L, 0, cavelist.size()); -  int top = lua_gettop(L); -     -  for(size_t i = 0; i < cavelist.size(); i++) { -    lua_pushstring(L, cavelist[i].cave.c_str()); -    lua_rawseti(L, top, i); +  int num = cavelist.size(); +  int sz = 6; // 4 fields in cave_t + 1 sogetxt and 1 sogedato +   +  lua_createtable(L, num, 0); +  int toptop = lua_gettop(L); + +  for(int i = 1; i <= num; i++) { +    lua_createtable(L, 0, sz); +    int top = lua_gettop(L); + +    for(int j = 1; j <= sz; j++) { +      if(j == 1) lua_pushstring(L, cavelist[i - 1].cave.c_str()); +      if(j == 2) lua_pushstring(L, cavelist[i - 1].bemaerkning1.c_str()); +      if(j == 3) lua_pushstring(L, cavelist[i - 1].bemaerkning2.c_str()); +      if(j == 4) lua_pushstring(L, cavelist[i - 1].bemaerkning3.c_str()); +      if(j == 5) lua_pushstring(L, cavelist[i - 1].sogetxt.c_str()); +      if(j == 6) lua_pushstring(L, cavelist[i - 1].sogedato.c_str()); +      lua_rawseti(L, top, j); +    } + +    lua_rawseti(L, toptop, i); +  } + +  return 1; +} + +class behandlingdata_t : public Praxisd::behandling_t { +public: +  std::string sogetxt; +  std::string sogedato; +}; +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); + +  std::vector<behandlingdata_t> behandlinglist; + +  try { +    Praxisd::patient_t pat = pxu->px->patient_get_by_cpr(cpr); +    std::vector<Praxisd::sogeord_t>::iterator i = pat.sogeord.begin(); +    while(i != pat.sogeord.end()) { +      Praxisd::sogeord_t &s = *i; +      if(s.sogenr[0] == 'B') { +        std::string csogenr = s.sogenr.substr(1, s.sogenr.length() - 1); +        std::vector<Praxisd::behandling_t> cl = pxu->px->diverse_get_behandling(csogenr); +        if(cl.size() == 1) { +          behandlingdata_t cdata; +          cdata.kode = cl[0].kode; +          cdata.behandling = cl[0].behandling; +          cdata.bemaerkning = cl[0].bemaerkning; +          cdata.udregning = cl[0].udregning; +          cdata.sogetxt = s.sogetxt; +          cdata.sogedato = s.sogedato; +          behandlinglist.push_back(cdata); +        } +      } +       +      i++; +    } +  } catch(const char *msg) { +    error(L, msg); +  } + +  int num = behandlinglist.size(); +  int sz = 6; // 4 fields in behandling_t + 1 sogetxt and 1 sogedato +   +  lua_createtable(L, num, 0); +  int toptop = lua_gettop(L); + +  for(int i = 1; i <= num; i++) { +    lua_createtable(L, 0, sz); +    int top = lua_gettop(L); + +    for(int j = 1; j <= sz; j++) { +      if(j == 1) lua_pushstring(L, behandlinglist[i - 1].kode.c_str()); +      if(j == 2) lua_pushstring(L, behandlinglist[i - 1].behandling.c_str()); +      if(j == 3) lua_pushstring(L, behandlinglist[i - 1].bemaerkning.c_str()); +      if(j == 4) lua_pushstring(L, behandlinglist[i - 1].udregning.c_str()); +      if(j == 5) lua_pushstring(L, behandlinglist[i - 1].sogetxt.c_str()); +      if(j == 6) lua_pushstring(L, behandlinglist[i - 1].sogedato.c_str()); +      lua_rawseti(L, top, j); +    } + +    lua_rawseti(L, toptop, i); +  } + +  return 1; +} + +class diagnosedata_t : public Praxisd::diagnose_t { +public: +  std::string sogetxt; +  std::string sogedato; +}; +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); + +  std::vector<diagnosedata_t> diagnoselist; + +  try { +    Praxisd::patient_t pat = pxu->px->patient_get_by_cpr(cpr); +    std::vector<Praxisd::sogeord_t>::iterator i = pat.sogeord.begin(); +    while(i != pat.sogeord.end()) { +      Praxisd::sogeord_t &s = *i; +      if(s.sogenr[0] == 'D') { +        std::string csogenr = s.sogenr.substr(1, s.sogenr.length() - 1); +        std::vector<Praxisd::diagnose_t> cl = pxu->px->diverse_get_diagnose(csogenr); +        if(cl.size() == 1) { +          diagnosedata_t cdata; +          cdata.kode = cl[0].kode; +          cdata.diagnose = cl[0].diagnose; +          cdata.bemaerkning = cl[0].bemaerkning; +          cdata.sogetxt = s.sogetxt; +          cdata.sogedato = s.sogedato; +          diagnoselist.push_back(cdata); +        } +      } +       +      i++; +    } +  } catch(const char *msg) { +    error(L, msg); +  } + +  int num = diagnoselist.size(); +  int sz = 5; // 3 fields in diagnose_t + 1 sogetxt and 1 sogedato +   +  lua_createtable(L, num, 0); +  int toptop = lua_gettop(L); + +  for(int i = 1; i <= num; i++) { +    lua_createtable(L, 0, sz); +    int top = lua_gettop(L); + +    for(int j = 1; j <= sz; j++) { +      if(j == 1) lua_pushstring(L, diagnoselist[i - 1].kode.c_str()); +      if(j == 2) lua_pushstring(L, diagnoselist[i - 1].diagnose.c_str()); +      if(j == 3) lua_pushstring(L, diagnoselist[i - 1].bemaerkning.c_str()); +      if(j == 4) lua_pushstring(L, diagnoselist[i - 1].sogetxt.c_str()); +      if(j == 5) lua_pushstring(L, diagnoselist[i - 1].sogedato.c_str()); +      lua_rawseti(L, top, j); +    } + +    lua_rawseti(L, toptop, i);    }    return 1; @@ -200,12 +358,103 @@ int px_cavelist(lua_State *L)      error(L, msg);    } -  lua_createtable(L, 0, cavelist.size()); -  int top = lua_gettop(L); -  for(size_t i = 0; i < cavelist.size(); i++) { -    lua_pushstring(L, cavelist[i].cave.c_str()); -    lua_rawseti(L, top, i); +  int num = cavelist.size(); +  int sz = 4; // 4 fields in cave_t +   +  lua_createtable(L, num, 0); +  int toptop = lua_gettop(L); + +  for(int i = 1; i <= num; i++) { +    lua_createtable(L, 0, sz); +    int top = lua_gettop(L); + +    for(int j = 1; j <= sz; j++) { +      if(j == 1) lua_pushstring(L, cavelist[i - 1].cave.c_str()); +      if(j == 2) lua_pushstring(L, cavelist[i - 1].bemaerkning1.c_str()); +      if(j == 3) lua_pushstring(L, cavelist[i - 1].bemaerkning2.c_str()); +      if(j == 4) lua_pushstring(L, cavelist[i - 1].bemaerkning3.c_str()); +      lua_rawseti(L, top, j); +    } + +    lua_rawseti(L, toptop, 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"); + +  const char *sogenr = luaL_checkstring(L, 2); + +  std::vector<Praxisd::behandling_t> behandlinglist; +  try { +    behandlinglist = pxu->px->diverse_get_behandling(sogenr); +  } catch(const char *msg) { +    error(L, msg); +  } + +  int num = behandlinglist.size(); +  int sz = 4; // 4 fields in behandling_t +   +  lua_createtable(L, num, 0); +  int toptop = lua_gettop(L); + +  for(int i = 1; i <= num; i++) { +    lua_createtable(L, 0, sz); +    int top = lua_gettop(L); + +    for(int j = 1; j <= sz; j++) { +      if(j == 1) lua_pushstring(L, behandlinglist[i - 1].kode.c_str()); +      if(j == 2) lua_pushstring(L, behandlinglist[i - 1].behandling.c_str()); +      if(j == 3) lua_pushstring(L, behandlinglist[i - 1].bemaerkning.c_str()); +      if(j == 4) lua_pushstring(L, behandlinglist[i - 1].udregning.c_str()); +      lua_rawseti(L, top, j); +    } + +    lua_rawseti(L, toptop, 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"); + +  const char *sogenr = luaL_checkstring(L, 2); + +  std::vector<Praxisd::diagnose_t> diagnoselist; +  try { +    diagnoselist = pxu->px->diverse_get_diagnose(sogenr); +  } catch(const char *msg) { +    error(L, msg); +  } + +  int num = diagnoselist.size(); +  int sz = 3; // 3 fields in diagnose_t +   +  lua_createtable(L, num, 0); +  int toptop = lua_gettop(L); + +  for(int i = 1; i <= num; i++) { +    lua_createtable(L, 0, sz); +    int top = lua_gettop(L); + +    for(int j = 1; j <= sz; j++) { +      if(j == 1) lua_pushstring(L, diagnoselist[i - 1].kode.c_str()); +      if(j == 2) lua_pushstring(L, diagnoselist[i - 1].diagnose.c_str()); +      if(j == 3) lua_pushstring(L, diagnoselist[i - 1].bemaerkning.c_str()); +      lua_rawseti(L, top, j); +    } + +    lua_rawseti(L, toptop, i);    }    return 1; @@ -231,7 +480,7 @@ int px_new(lua_State *L)    return 1;  } -static int px_gc(lua_State *L) +int px_gc(lua_State *L)  {    px_userdata *pxu; @@ -243,21 +492,6 @@ static int px_gc(lua_State *L)    return 0;  } -static const struct luaL_Reg px_meths[] = { -  {"__gc", px_gc}, -  {"cavelist", px_cavelist}, -  {"getcave", px_getcave}, -  {"addcave", px_addcave}, -  {"adddiagnose", px_adddiagnose}, -  {"addbehandling", px_addbehandling}, -  {NULL, NULL} -}; - -static const struct luaL_reg px_funcs[] = { -  {"new", px_new}, -  {NULL, NULL} -}; -  void register_praxisd(lua_State *L)  {    luaL_newmetatable(L, "Praxisd"); @@ -269,7 +503,7 @@ void register_praxisd(lua_State *L)  }  #ifdef TEST_LUAPRAXISD -//deps: praxisd.cc debug.cc saxparser.cc log.cc +//deps: praxisd.cc debug.cc saxparser.cc log.cc mutex.cc  //cflags: -I.. $(LUA_CFLAGS) $(CURL_CFLAGS) $(EXPAT_CFLAGS)  //libs: $(LUA_LIBS) $(CURL_LIBS) $(EXPAT_LIBS)  #include "test.h" @@ -288,29 +522,36 @@ register_praxisd(L);  /////  std::string program =    "px = Praxisd.new('localhost', 10000)\n" -  "cl = px:cavelist('')\n" -  "for i=1,#cl do\n" -  "  print(cl[i])\n" -  "end\n" +  "--cl = px:cavelist('')\n" +  "--for i=1,#cl do\n" +  "--  print(cl[i])\n" +  "--end\n"    "\n" -  "--pcl = px:addcave('1505050505', 'LUMIGAN')\n" +  "pcl = px:addcave('1505050505', 'AZOPT', 'test')\n"    "\n" -  "pcl = px:addcave('1505050505', os.date('%H%M%S'))\n" +  "--pcl = px:addcave('1505050505', os.date('%H%M%S'))\n"    "\n" -  "pcl = px:getcave('1505050505')\n" -  "for i=1,#pcl do\n" -  "  print('p: ' .. pcl[i])\n" -  "end\n" +  "--pcl = px:getbehandling('1505050505')\n" +  "--print('#pcl: ' .. #pcl)\n" +  "--for i=1,#pcl do\n" +  "--  pc = pcl[i]\n" +  "--  print('#pc: ' .. #pc)\n" +  "--  for j=1,#pc do\n" +  "--    print('  pc: ' .. j .. ': ' .. pc[j])\n" +  "--  end\n" +  "--end\n"    ;  //int top = lua_gettop(L);  if(luaL_loadbuffer(L, program.c_str(), program.size(), "luapraxisd test")) {    ERR(luaresume, "loadbufer: %s\n", lua_tostring(L, lua_gettop(L))); +  printf("loadbuffer error: %s", lua_tostring(L, lua_gettop(L)));  }  if(lua_pcall(L, 0, LUA_MULTRET, 0)) {    ERR(luaresume, "pcall: %s\n" , lua_tostring(L, lua_gettop(L))); +  printf("pcall error: %s", lua_tostring(L, lua_gettop(L)));  }  /*  if(top != lua_gettop(L) - 1) { diff --git a/server/src/luapraxisd.h b/server/src/luapraxisd.h index 71225bf..82445e1 100644 --- a/server/src/luapraxisd.h +++ b/server/src/luapraxisd.h @@ -34,6 +34,7 @@   * Praxisd Class   * @class Praxisd   * @serverside + * @clientside   * The praxisd class connects and handles communication with the praxisd   * daemon process.   */ @@ -50,65 +51,134 @@  int px_new(lua_State *L);  /*** - * @method stringlist praxisd:cavelist() + * @method stringlist-list praxisd:cavelist()   * Get server cave list.   * To retrieve cavelist for a patient see @see praxisd:getcave().   * @return The complete list of known (possible) cave from the server. + * The returned stringlist are indexed as follows: 1: cave - 2: bemaerkning1 - + * 3: bemaerkning2 - 4: bemaerkning3   * @example Create a new praxisd object, get and print cavelist:   * px = Praxisd.new('localhost', 10000)   * lst = px:cavelist()   * for i=0,#lst do - *   print(lst[i]) + *   print('cave: ' .. lst[i][1]) + *   print('bemaerkning1: ' .. lst[i][2]) + *   print('bemaerkning2: ' .. lst[i][3]) + *   print('bemaerkning3: ' .. lst[i][4])   * end   */  int px_cavelist(lua_State *L);  /*** - * @method stringlist praxisd:getcave(string patientid) + * @method stringlist-list praxisd:behandlinglist() + * Get server behandling list. + * To retrieve behandlinglist for a patient see @see praxisd:getbehandling(). + * @return The complete list of known (possible) behandling from the server. + * The returned stringlist are indexed as follows: 1: kode - 2: behandling - + * 3: bemaerkning - 4: udregning. + * @example Create a new praxisd object, get and print behandlinglist: + * px = Praxisd.new('localhost', 10000) + * lst = px:behandlinglist() + * for i=0,#lst do + *   print('kode: ' .. lst[i][1]) + *   print('behandling: ' .. lst[i][2]) + *   print('bemaerkning: ' .. lst[i][3]) + *   print('udregning: ' .. lst[i][4]) + * end + */ +int px_behandlinglist(lua_State *L); + +/*** + * @method stringlist-list praxisd:diagnoselist() + * Get server diagnose list. + * To retrieve diagnoselist for a patient see @see praxisd:getdiagnose(). + * @return The complete list of known (possible) diagnose from the server. + * The returned stringlist are indexed as follows: 1: kode - 2: diagnose - + * 3: bemaerkning. + * @example Create a new praxisd object, get and print diagnoselist: + * px = Praxisd.new('localhost', 10000) + * lst = px:diagnoselist() + * for i=0,#lst do + *   print('kode: ' .. lst[i][1]) + *   print('diagnose: ' .. lst[i][2]) + *   print('bemaerkning: ' .. lst[i][3]) + * end + */ +int px_diagnoselist(lua_State *L); + +/*** + * @method stringlist-list praxisd:getcave(string patientid)   * Get cave list from a patient.   * To retrieve cavelist from the server see @see praxisd:cavelist(). To add cave   * to a patient see @see praxisd:addcave().   * @param patientid A string containing the patientid.   * @return The list cave registered with the patient. + * The returned stringlist are indexed as follows: 1: cave - 2: bemaerkning1 - + * 3: bemaerkning2 - 4: bemaerkning3 - 5: sogetxt - 6: sogedato.   * @example Create a new praxisd object, get and print cavelist:   * px = Praxisd.new('localhost', 10000)   * lst = px:getcave('1234567890')   * for i=0,#lst do - *   print(lst[i]) + *   print('cave: ' .. lst[i][1]) + *   print('bemaerkning1: ' .. lst[i][2]) + *   print('bemaerkning2: ' .. lst[i][3]) + *   print('bemaerkning3: ' .. lst[i][4]) + *   print('sogetxt: ' .. lst[i][5]) + *   print('sogedato: ' .. lst[i][6])   * end   */  int px_getcave(lua_State *L);  /*** - * @method nil praxisd:adddiagnose(string patientid, string diagnose, string text) - * Add a diagnose to a patient. + * @method stringlist-list praxisd:getbehandling(string patientid) + * Get behandling list from a patient. + * To retrieve behandlinglist from the server see @see praxisd:behandlinglist(). To add behandling + * to a patient see @see praxisd:addbehandling().   * @param patientid A string containing the patientid. - * @param diagnose The diagnose code. - * @param text A text to store with the diagnose code. The string mat be up to 6 - * characters long. If longer it will be trunkated. - * @example Create a new praxisd object and add a diagnose: + * @return The list behandling registered with the patient. + * The returned stringlist are indexed as follows: 1: kode - 2: behandling - + * 3: bemaerkning - 4: udregning - 5: sogetxt - 6: sogedato. + * @example Create a new praxisd object, get and print behandlinglist:   * px = Praxisd.new('localhost', 10000) - * px:adddiagnose('1234567890', 'C0001', 'o.dxt') + * lst = px:getbehandling('1234567890') + * for i=0,#lst do + *   print('kode: ' .. lst[i][1]) + *   print('behandling: ' .. lst[i][2]) + *   print('bemaerkning: ' .. lst[i][3]) + *   print('udregning: ' .. lst[i][4]) + *   print('sogetxt: ' .. lst[i][5]) + *   print('sogedato: ' .. lst[i][6]) + * end   */ -int px_adddiagnose(lua_State *L); +int px_getbehandling(lua_State *L);  /*** - * @method nil praxisd:addbehandling(string patientid, string behandling, string text) - * Add a behandling to a patient. + * @method stringlist-list praxisd:getdiagnose(string patientid) + * Get diagnose list from a patient. + * To retrieve diagnoselist from the server see @see praxisd:diagnoselist(). To add diagnose + * to a patient see @see praxisd:adddiagnose().   * @param patientid A string containing the patientid. - * @param diagnose The behandling code. - * @param text A text to store with the behandling code. The string mat be up to 6 - * characters long. If longer it will be trunkated. - * @example Create a new praxisd object and add a behandling: + * @return The list diagnose registered with the patient. + * The returned stringlist are indexed as follows: 1: kode - 2: diagnose - + * 3: bemaerkning - 4: sogetxt - 5: sogedato. + * @example Create a new praxisd object, get and print diagnoselist:   * px = Praxisd.new('localhost', 10000) - * px:addbehandling('1234567890', 'B0001', 'o.sin') + * lst = px:getdiagnose('1234567890') + * for i=0,#lst do + *   print('kode: ' .. lst[i][1]) + *   print('diagnose: ' .. lst[i][2]) + *   print('bemaerkning: ' .. lst[i][3]) + *   print('sogetxt: ' .. lst[i][4]) + *   print('sogedato: ' .. lst[i][5]) + * end   */ -int px_addbehandling(lua_State *L); +int px_getdiagnose(lua_State *L);  /***   * @method nil praxisd:addcave(string patientid, string cave, string text)   * Add a cave entry to a patient. To retrieve list of cave from a patient   * see @see praxisd:getcave(). + * NOTE: This function is only available on the server.   * @param patientid A string containing the patientid.   * @param diagnose The cave string.   * @param text A text to store with the cave entry. NOTE: This is not shown in @@ -120,6 +190,61 @@ int px_addbehandling(lua_State *L);   */  int px_addcave(lua_State *L); +/*** + * @method nil praxisd:addbehandling(string patientid, string behandling, string text) + * Add a behandling to a patient. To retrieve list of behandling from a patient + * see @see praxisd:getbehandling(). + * NOTE: This function is only available on the server. + * @param patientid A string containing the patientid. + * @param diagnose The behandling code. + * @param text A text to store with the behandling code. The string mat be up to 6 + * characters long. If longer it will be trunkated. + * @example Create a new praxisd object and add a behandling: + * px = Praxisd.new('localhost', 10000) + * px:addbehandling('1234567890', 'B0001', 'o.sin') + */ +int px_addbehandling(lua_State *L); + +/*** + * @method nil praxisd:adddiagnose(string patientid, string diagnose, string text) + * Add a diagnose to a patient. To retrieve list of diagnose from a patient + * see @see praxisd:getdiagnose(). + * NOTE: This function is only available on the server. + * @param patientid A string containing the patientid. + * @param diagnose The diagnose code. + * @param text A text to store with the diagnose code. The string mat be up to 6 + * characters long. If longer it will be trunkated. + * @example Create a new praxisd object and add a diagnose: + * px = Praxisd.new('localhost', 10000) + * px:adddiagnose('1234567890', 'C0001', 'o.dxt') + */ +int px_adddiagnose(lua_State *L); + +/*** + * @method nil __gc() + * Garbage collector. Closes connection and frees all allocated memory. + */ +int px_gc(lua_State *L); +  void register_praxisd(lua_State *L); +const struct luaL_Reg px_meths[] = { +  {"__gc", px_gc}, +  {"cavelist", px_cavelist}, +  {"behandliglist", px_behandlinglist}, +  {"diagnoselist", px_diagnoselist}, +  {"getcave", px_getcave}, +  {"getbehandling", px_getbehandling}, +  {"getdiagnose", px_getdiagnose}, +  {"addcave", px_addcave}, +  {"addbehandling", px_addbehandling}, +  {"adddiagnose", px_adddiagnose}, +  {NULL, NULL} +}; + +const struct luaL_reg px_funcs[] = { +  {"new", px_new}, +  {NULL, NULL} +}; +  #endif/*__PRACRO_LUAPRAXISD_H__*/ | 
