patient.repo.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /**
  2. * 微信用户库,即患者数据库。
  3. *
  4. * 目前,患者真实数据存在于家庭医生平台数据库,IM数据库仅是做视图。将来根据需要将通过同步机制将数据同步到IM数据库。
  5. *
  6. * author: Sand
  7. * since: 2016/11/18
  8. */
  9. "use strict";
  10. let ImDb = require('./db/im.db');
  11. let oracledbUtil = require('../../util/oracledb.util');
  12. class PatientRepo {
  13. constructor() {
  14. }
  15. static findOne(patientId, handler){
  16. oracledbUtil.quer({
  17. "sql": "SELECT \"ID\" AS \"id\",\"NAME\" AS \"name\",\"SEX\" AS \"sex\",\"BIRTHDATE\" AS \"birthdate\",\"AVATAR\" AS \"avatar\",\"OPENID\" AS \"openid\",\"IDCARD\" AS \"idcard\",\"MOBILE\" AS \"mobile\" FROM PATIENTS WHERE ID = ? ",
  18. "args": [patientId],
  19. "handler": handler
  20. });
  21. }
  22. static findWechatOpenId(code, handler) {
  23. var sql = "SELECT \"OPENID\" as \"openid\" FROM PATIENTS WHERE ID = :ID ";
  24. ImDb.execQuery({
  25. "sql": sql,
  26. "args": [code],
  27. "handler": handler
  28. });
  29. }
  30. /**
  31. * 查找自己和家人的openid
  32. * @param code
  33. * @param handler
  34. */
  35. static findWechatOpenIds(code, handler){
  36. var sql = "SELECT M.FAMILY_MEMBER CODE,P.NAME,P.OPENID FROM WLYY.WLYY_PATIENT P,WLYY.WLYY_PATIENT_FAMILY_MEMBER M" +
  37. " WHERE M.PATIENT = :PATIENT AND M.FAMILY_MEMBER=P.CODE AND P.OPENID IS NOT NULL AND M.IS_AUTHORIZE = 1 " +
  38. " UNION ALL" +
  39. " SELECT P.CODE,P.NAME,P.OPENID FROM WLYY.WLYY_PATIENT P WHERE P.CODE = :CODE";
  40. ImDb.execQuery({
  41. "sql": sql,
  42. "args": [code,code],
  43. "handler": handler
  44. });
  45. }
  46. // TODO: 不能直接访问三师库
  47. static getPatientDoctorConsult(patient, doctor, handler) {
  48. var sql = "SELECT * FROM WLYY_CONSULT_TEAM WHERE PATIENT = ? AND DOCTOR = ? AND STATUS = 0 AND DEL = '1' ";
  49. ImDb.execQuery({
  50. "sql": sql,
  51. "args": [patient, doctor],
  52. "handler": handler
  53. });
  54. };
  55. }
  56. module.exports = PatientRepo;