/library/freeb/Provider.class.php

https://github.com/md-tech/openemr · PHP · 629 lines · 431 code · 115 blank · 83 comment · 87 complexity · aa4de46134c6f693f2b98fffb87e4365 MD5 · raw file

  1. <?php
  2. require_once("DataObjectBase.class.php");
  3. require_once("xmlrpc.inc");
  4. class Provider Extends DataObjectBase {
  5. function Provider() {
  6. $this->_addFunc("socialsecuritynumber", array( "name" => "FreeB.FBProvider.SocialSecurityNumber",
  7. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  8. "doc" => ""));
  9. $this->_addFunc("tin", array( "name" => "FreeB.FBProvider.TIN",
  10. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  11. "doc" => ""));
  12. $this->_addFunc("ipn", array( "name" => "FreeB.FBProvider.IPN",
  13. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  14. "doc" => ""));
  15. $this->_addFunc("npi", array( "name" => "FreeB.FBProvider.NPI",
  16. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  17. "doc" => ""));
  18. $this->_addFunc("firstname", array( "name" => "FreeB.FBProvider.FirstName",
  19. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  20. "doc" => ""));
  21. $this->_addFunc("middlename", array( "name" => "FreeB.FBProvider.MiddleName",
  22. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  23. "doc" => ""));
  24. $this->_addFunc("lastname", array( "name" => "FreeB.FBProvider.LastName",
  25. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  26. "doc" => ""));
  27. $this->_addFunc("streetaddress", array( "name" => "FreeB.FBProvider.StreetAddress",
  28. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  29. "doc" => ""));
  30. $this->_addFunc("city", array( "name" => "FreeB.FBProvider.City",
  31. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  32. "doc" => ""));
  33. $this->_addFunc("state", array( "name" => "FreeB.FBProvider.State",
  34. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  35. "doc" => ""));
  36. $this->_addFunc("zipcode", array( "name" => "FreeB.FBProvider.Zipcode",
  37. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  38. "doc" => ""));
  39. $this->_addFunc("phonecountry", array( "name" => "FreeB.FBProvider.PhoneCountry",
  40. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  41. "doc" => ""));
  42. $this->_addFunc("phoneextension", array( "name" => "FreeB.FBProvider.PhoneExtension",
  43. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  44. "doc" => ""));
  45. $this->_addFunc("phonearea", array( "name" => "FreeB.FBProvider.PhoneArea",
  46. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  47. "doc" => ""));
  48. $this->_addFunc("phonenumber", array( "name" => "FreeB.FBProvider.PhoneNumber",
  49. "sig" => array(XMLRPCSTRING,XMLRPCINT),
  50. "doc" => ""));
  51. }
  52. function socialsecuritynumber($m) {
  53. // since this function is useless I will get the NPI number using this
  54. $err="";
  55. $obj= $m->getparam(0);
  56. $key = $obj->getval();
  57. $sql = "SELECT * FROM users where id = '" . $key . "'";
  58. //echo $sql;
  59. $db = $GLOBALS['adodb']['db'];
  60. $results = $db->Execute($sql);
  61. if (!$results) {
  62. $err = $db->ErrorMsg();
  63. }
  64. else {
  65. if (!$results->EOF) {
  66. $retval = $results->fields['npi'];
  67. }
  68. }
  69. // if we generated an error, create an error return response
  70. if ($err) {
  71. return $this->_handleError($err);
  72. }
  73. else {
  74. // otherwise, we create the right response
  75. // with the state name
  76. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  77. }
  78. }
  79. function tin($m) {
  80. $err="";
  81. $obj= $m->getparam(0);
  82. $key = $obj->getval();
  83. $sql = "SELECT * FROM users where id = '" . $key . "'";
  84. //echo $sql;
  85. $db = $GLOBALS['adodb']['db'];
  86. $results = $db->Execute($sql);
  87. if (!$results) {
  88. $err = $db->ErrorMsg();
  89. }
  90. else {
  91. if (!$results->EOF) {
  92. $retval = $results->fields['federaltaxid'];
  93. }
  94. }
  95. // if we generated an error, create an error return response
  96. if ($err) {
  97. return $this->_handleError($err);
  98. }
  99. else {
  100. // otherwise, we create the right response
  101. // with the state name
  102. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  103. }
  104. }
  105. function ipn($m) {
  106. $err="";
  107. $obj= $m->getparam(0);
  108. $key = $obj->getval();
  109. $sql = "SELECT * FROM users where id = '" . $key . "'";
  110. //echo $sql;
  111. $db = $GLOBALS['adodb']['db'];
  112. $results = $db->Execute($sql);
  113. if (!$results) {
  114. $err = $db->ErrorMsg();
  115. }
  116. else {
  117. if (!$results->EOF) {
  118. $retval = $results->fields['upin'];
  119. }
  120. }
  121. // if we generated an error, create an error return response
  122. if ($err) {
  123. return $this->_handleError($err);
  124. }
  125. else {
  126. // otherwise, we create the right response
  127. // with the state name
  128. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  129. }
  130. }
  131. function npi($m) {
  132. $err="";
  133. $obj= $m->getparam(0);
  134. $key = $obj->getval();
  135. $sql = "SELECT * FROM users where id = '" . $key . "'";
  136. //echo $sql;
  137. $db = $GLOBALS['adodb']['db'];
  138. $results = $db->Execute($sql);
  139. if (!$results) {
  140. $err = $db->ErrorMsg();
  141. }
  142. else {
  143. if (!$results->EOF) {
  144. $retval = $results->fields['npi'];
  145. }
  146. }
  147. // if we generated an error, create an error return response
  148. if ($err) {
  149. return $this->_handleError($err);
  150. }
  151. else {
  152. // otherwise, we create the right response
  153. // with the state name
  154. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  155. }
  156. }
  157. function firstname($m) {
  158. $err="";
  159. $obj= $m->getparam(0);
  160. $key = $obj->getval();
  161. $sql = "SELECT * FROM users where id = '" . $key . "'";
  162. //echo $sql;
  163. $db = $GLOBALS['adodb']['db'];
  164. $results = $db->Execute($sql);
  165. if (!$results) {
  166. $err = $db->ErrorMsg();
  167. }
  168. else {
  169. if (!$results->EOF) {
  170. $retval = $results->fields['fname'];
  171. }
  172. }
  173. // if we generated an error, create an error return response
  174. if ($err) {
  175. return $this->_handleError($err);
  176. }
  177. else {
  178. // otherwise, we create the right response
  179. // with the state name
  180. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  181. }
  182. }
  183. function middlename($m) {
  184. $err="";
  185. $obj= $m->getparam(0);
  186. $key = $obj->getval();
  187. $sql = "SELECT * FROM users where id = '" . $key . "'";
  188. //echo $sql;
  189. $db = $GLOBALS['adodb']['db'];
  190. $results = $db->Execute($sql);
  191. if (!$results) {
  192. $err = $db->ErrorMsg();
  193. }
  194. else {
  195. if (!$results->EOF) {
  196. $retval = $results->fields['federaltaxid'];
  197. }
  198. }
  199. // if we generated an error, create an error return response
  200. if ($err) {
  201. return $this->_handleError($err);
  202. }
  203. else {
  204. // otherwise, we create the right response
  205. // with the state name
  206. return new xmlrpcresp(new xmlrpcval($pkey));
  207. }
  208. }
  209. function lastname($m) {
  210. $err="";
  211. $obj= $m->getparam(0);
  212. $key = $obj->getval();
  213. $sql = "SELECT * FROM users where id = '" . $key . "'";
  214. //echo $sql;
  215. $db = $GLOBALS['adodb']['db'];
  216. $results = $db->Execute($sql);
  217. if (!$results) {
  218. $err = $db->ErrorMsg();
  219. }
  220. else {
  221. if (!$results->EOF) {
  222. $retval = $results->fields['lname'];
  223. }
  224. }
  225. // if we generated an error, create an error return response
  226. if ($err) {
  227. return $this->_handleError($err);
  228. }
  229. else {
  230. // otherwise, we create the right response
  231. // with the state name
  232. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  233. }
  234. }
  235. function streetaddress($m) {
  236. $err="";
  237. $obj= $m->getparam(0);
  238. $key = $obj->getval();
  239. $sql = "SELECT * FROM users where id = '" . $key . "'";
  240. //echo $sql;
  241. $db = $GLOBALS['adodb']['db'];
  242. $results = $db->Execute($sql);
  243. if (!$results) {
  244. $err = $db->ErrorMsg();
  245. }
  246. else {
  247. if (!$results->EOF) {
  248. $retval = $results->fields['facility'];
  249. }
  250. }
  251. $sql = "SELECT * FROM facility where name = '" . $retval ."'";
  252. //echo $sql;
  253. $db = $GLOBALS['adodb']['db'];
  254. $results = $db->Execute($sql);
  255. if (!$results) {
  256. $err = $db->ErrorMsg();
  257. }
  258. else {
  259. if (!$results->EOF) {
  260. $retval = $results->fields['street'];
  261. }
  262. }
  263. // if we generated an error, create an error return response
  264. if ($err) {
  265. return $this->_handleError($err);
  266. }
  267. else {
  268. // otherwise, we create the right response
  269. // with the state name
  270. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  271. }
  272. }
  273. function city($m) {
  274. $err="";
  275. $obj= $m->getparam(0);
  276. $key = $obj->getval();
  277. $sql = "SELECT * FROM users where id = '" . $key . "'";
  278. //echo $sql;
  279. $db = $GLOBALS['adodb']['db'];
  280. $results = $db->Execute($sql);
  281. if (!$results) {
  282. $err = $db->ErrorMsg();
  283. }
  284. else {
  285. if (!$results->EOF) {
  286. $retval = $results->fields['facility'];
  287. }
  288. }
  289. $sql = "SELECT * FROM facility where name = '" . $retval ."'";
  290. //echo $sql;
  291. $db = $GLOBALS['adodb']['db'];
  292. $results = $db->Execute($sql);
  293. if (!$results) {
  294. $err = $db->ErrorMsg();
  295. }
  296. else {
  297. if (!$results->EOF) {
  298. $retval = $results->fields['city'];
  299. }
  300. }
  301. // if we generated an error, create an error return response
  302. if ($err) {
  303. return $this->_handleError($err);
  304. }
  305. else {
  306. // otherwise, we create the right response
  307. // with the state name
  308. return new xmlrpcresp(new xmlrpcval($pkey));
  309. }
  310. }
  311. function state($m) {
  312. $err="";
  313. $obj= $m->getparam(0);
  314. $key = $obj->getval();
  315. $sql = "SELECT * FROM users where id = '" . $key . "'";
  316. //echo $sql;
  317. $db = $GLOBALS['adodb']['db'];
  318. $results = $db->Execute($sql);
  319. if (!$results) {
  320. $err = $db->ErrorMsg();
  321. }
  322. else {
  323. if (!$results->EOF) {
  324. $retval = $results->fields['facility'];
  325. }
  326. }
  327. $sql = "SELECT * FROM facility where name = '" . $retval ."'";
  328. //echo $sql;
  329. $db = $GLOBALS['adodb']['db'];
  330. $results = $db->Execute($sql);
  331. if (!$results) {
  332. $err = $db->ErrorMsg();
  333. }
  334. else {
  335. if (!$results->EOF) {
  336. $retval = $results->fields['state'];
  337. }
  338. }
  339. // if we generated an error, create an error return response
  340. if ($err) {
  341. return $this->_handleError($err);
  342. }
  343. else {
  344. // otherwise, we create the right response
  345. // with the state name
  346. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  347. }
  348. }
  349. function zipcode($m) {
  350. $err="";
  351. $obj= $m->getparam(0);
  352. $key = $obj->getval();
  353. $sql = "SELECT * FROM users where id = '" . $key . "'";
  354. //echo $sql;
  355. $db = $GLOBALS['adodb']['db'];
  356. $results = $db->Execute($sql);
  357. if (!$results) {
  358. $err = $db->ErrorMsg();
  359. }
  360. else {
  361. if (!$results->EOF) {
  362. $retval = $results->fields['facility'];
  363. }
  364. }
  365. $sql = "SELECT * FROM facility where name = '" . $retval ."'";
  366. //echo $sql;
  367. $db = $GLOBALS['adodb']['db'];
  368. $results = $db->Execute($sql);
  369. if (!$results) {
  370. $err = $db->ErrorMsg();
  371. }
  372. else {
  373. if (!$results->EOF) {
  374. $retval = $results->fields['postal_code'];
  375. }
  376. }
  377. // if we generated an error, create an error return response
  378. if ($err) {
  379. return $this->_handleError($err);
  380. }
  381. else {
  382. // otherwise, we create the right response
  383. // with the state name
  384. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  385. }
  386. }
  387. function phonecountry($m) {
  388. $err="";
  389. $pkey = "1";
  390. // if we generated an error, create an error return response
  391. if ($err) {
  392. return $this->_handleError($err);
  393. }
  394. else {
  395. // otherwise, we create the right response
  396. // with the state name
  397. return new xmlrpcresp(new xmlrpcval($pkey));
  398. }
  399. }
  400. function phoneextension($m) {
  401. $err="";
  402. //unimplmented by OpenEMR
  403. $pkey = "";
  404. // if we generated an error, create an error return response
  405. if ($err) {
  406. return $this->_handleError($err);
  407. }
  408. else {
  409. // otherwise, we create the right response
  410. // with the state name
  411. return new xmlrpcresp(new xmlrpcval($pkey));
  412. }
  413. }
  414. function phonearea($m) {
  415. $err="";
  416. $obj= $m->getparam(0);
  417. $key = $obj->getval();
  418. $sql = "SELECT * FROM users where id = '" . $key . "'";
  419. //echo $sql;
  420. $db = $GLOBALS['adodb']['db'];
  421. $results = $db->Execute($sql);
  422. if (!$results) {
  423. $err = $db->ErrorMsg();
  424. }
  425. else {
  426. if (!$results->EOF) {
  427. $retval = $results->fields['facility'];
  428. }
  429. }
  430. $sql = "SELECT * FROM facility where name = '" . $retval ."'";
  431. //echo $sql;
  432. $db = $GLOBALS['adodb']['db'];
  433. $results = $db->Execute($sql);
  434. if (!$results) {
  435. $err = $db->ErrorMsg();
  436. }
  437. else {
  438. if (!$results->EOF) {
  439. $retval = $results->fields['phone'];
  440. }
  441. }
  442. $phone_parts = array();
  443. // preg_match("/^\((.*?)\)\s(.*?)\-(.*?)$/",$retval,$phone_parts);
  444. preg_match("/(\d\d\d)\D*(\d\d\d)\D*(\d\d\d\d)/",$retval,$phone_parts);
  445. $retval = $phone_parts[1];
  446. // if we generated an error, create an error return response
  447. if ($err) {
  448. return $this->_handleError($err);
  449. }
  450. else {
  451. // otherwise, we create the right response
  452. // with the state name
  453. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  454. }
  455. }
  456. function phonenumber($m) {
  457. $err="";
  458. $obj= $m->getparam(0);
  459. $key = $obj->getval();
  460. $sql = "SELECT * FROM users where id = '" . $key . "'";
  461. //echo $sql;
  462. $db = $GLOBALS['adodb']['db'];
  463. $results = $db->Execute($sql);
  464. if (!$results) {
  465. $err = $db->ErrorMsg();
  466. }
  467. else {
  468. if (!$results->EOF) {
  469. $retval = $results->fields['facility'];
  470. }
  471. }
  472. $sql = "SELECT * FROM facility where name = '" . $retval ."'";
  473. //echo $sql;
  474. $db = $GLOBALS['adodb']['db'];
  475. $results = $db->Execute($sql);
  476. if (!$results) {
  477. $err = $db->ErrorMsg();
  478. }
  479. else {
  480. if (!$results->EOF) {
  481. $retval = $results->fields['phone'];
  482. }
  483. }
  484. $phone_parts = array();
  485. // preg_match("/^\((.*?)\)\s(.*?)\-(.*?)$/",$retval,$phone_parts);
  486. preg_match("/(\d\d\d)\D*(\d\d\d)\D*(\d\d\d\d)/",$retval,$phone_parts);
  487. $retval = $phone_parts[2] . "-" . $phone_parts[3] ;
  488. // if we generated an error, create an error return response
  489. if ($err) {
  490. return $this->_handleError($err);
  491. }
  492. else {
  493. // otherwise, we create the right response
  494. // with the state name
  495. return new xmlrpcresp(new xmlrpcval($retval,"string"));
  496. }
  497. }
  498. }
  499. //'FreeB.FBProvider.SocialSecurityNumber' => \&FreeB_FBProvider_SocialSecurityNumber,
  500. //'FreeB.FBProvider.TIN' => \&FreeB_FBProvider_TIN,
  501. //'FreeB.FBProvider.IPN' => \&FreeB_FBProvider_IPN,
  502. //'FreeB.FBProvider.NPI' => \&FreeB_FBProvider_NPI,
  503. //'FreeB.FBProvider.FirstName' => \&FreeB_FBProvider_FirstName,
  504. //'FreeB.FBProvider.MiddleName' => \&FreeB_FBProvider_MiddleName,
  505. //'FreeB.FBProvider.LastName' => \&FreeB_FBProvider_LastName,
  506. //'FreeB.FBProvider.StreetAddress' => \&FreeB_FBProvider_StreetAddress,
  507. //'FreeB.FBProvider.City' => \&FreeB_FBProvider_City,
  508. //'FreeB.FBProvider.State' => \&FreeB_FBProvider_State,
  509. //'FreeB.FBProvider.Zipcode' => \&FreeB_FBProvider_Zipcode,
  510. //'FreeB.FBProvider.PhoneCountry' => \&FreeB_FBProvider_PhoneCountry,
  511. //'FreeB.FBProvider.PhoneExtension' => \&FreeB_FBProvider_PhoneExtension,
  512. //'FreeB.FBProvider.PhoneNumber' => \&FreeB_FBProvider_PhoneNumber,
  513. //'FreeB.FBProvider.PhoneArea' => \&FreeB_FBProvider_PhoneArea,
  514. ?>