graph.py 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. from sqlalchemy import Column, Integer, String, Text, ForeignKey,Float, DateTime
  2. from sqlalchemy.orm import relationship
  3. from agent.db.database import Base
  4. class DbKgProj(Base):
  5. __tablename__ = "kg_projs"
  6. id = Column(Integer, primary_key=True, index=True)
  7. proj_name = Column(String(64), nullable=False)
  8. proj_category = Column(String(64), nullable=False)
  9. proj_type = Column(String(64), nullable=False)
  10. proj_conf = Column(String(300), nullable=False)
  11. created = Column(DateTime, nullable=False)
  12. updated = Column(DateTime, nullable=False)
  13. status = Column(Integer, default=0)
  14. class DbKgGraphs(Base):
  15. __tablename__ = "kg_graphs"
  16. id = Column(Integer, primary_key=True, index=True)
  17. category = Column(String(64), nullable=False)
  18. name = Column(String(64), nullable=False)
  19. graph_description = Column(String(64), nullable=False)
  20. graph_settings = Column(Text, nullable=False)
  21. created = Column(DateTime, nullable=False)
  22. updated = Column(DateTime, nullable=False)
  23. status = Column(Integer, default=0)
  24. class DbKgModels(Base):
  25. __tablename__ = "kg_models"
  26. id = Column(Integer, primary_key=True, index=True)
  27. model_category = Column(String(64), nullable=False)
  28. model_name = Column(String(64), nullable=False)
  29. model_description = Column(String(64), nullable=False)
  30. model_settings = Column(Text, nullable=False)
  31. created = Column(DateTime, nullable=False)
  32. updated = Column(DateTime, nullable=False)
  33. status = Column(Integer, default=0)
  34. class DbKgTask(Base):
  35. __tablename__ = "kg_tasks"
  36. id = Column(Integer, primary_key=True, index=True)
  37. proj_id = Column(Integer, ForeignKey('kg_projs.id'), nullable=False)
  38. task_category = Column(String(64), nullable=False)
  39. task_name = Column(String(32), nullable=False)
  40. task_content = Column(Text, nullable=False)
  41. task_log = Column(Text, nullable=True)
  42. created = Column(DateTime, nullable=False)
  43. updated = Column(DateTime, nullable=False)
  44. status = Column(Integer, default=0)
  45. class DbKgSubGraph(Base):
  46. __tablename__ = "kg_sub_graph"
  47. id = Column(Integer, primary_key=True, index=True)
  48. graph_name = Column(String(64), nullable=False)
  49. graph_content = Column(Text)
  50. status = Column(Integer, default=0)
  51. class DbKgNode(Base):
  52. __tablename__ = "kg_nodes"
  53. id = Column(Integer, primary_key=True, index=True)
  54. graph_id = Column(Integer, default=0)
  55. name = Column(String(64), nullable=False)
  56. category = Column(String(64), nullable=False)
  57. layout = Column(String(100))
  58. version = Column(String(16))
  59. status = Column(Integer, default=0)
  60. props = relationship("DbKgProp", cascade = "delete", back_populates="node" ,foreign_keys='DbKgProp.ref_id', primaryjoin="DbKgNode.id==DbKgProp.ref_id")
  61. class DbKgEdge(Base):
  62. __tablename__ = "kg_edges"
  63. id = Column(Integer, primary_key=True, index=True)
  64. graph_id = Column(Integer, default=0)
  65. category = Column(String(64), nullable=False)
  66. src_id = Column(Integer, ForeignKey('kg_nodes.id'), nullable=False)
  67. dest_id = Column(Integer, ForeignKey('kg_nodes.id'), nullable=False)
  68. name = Column(String(64), nullable=False)
  69. version = Column(String(16))
  70. status = Column(Integer, default=0)
  71. src_node = relationship("DbKgNode", primaryjoin="DbKgEdge.src_id==DbKgNode.id", lazy="select")
  72. dest_node = relationship("DbKgNode", primaryjoin="DbKgEdge.dest_id==DbKgNode.id", lazy="select")
  73. props = relationship("DbKgEdgeProp", cascade = "delete", back_populates="edge" ,foreign_keys='DbKgEdgeProp.ref_id', primaryjoin="DbKgEdge.id==DbKgEdgeProp.ref_id")
  74. class DbKgProp(Base):
  75. __tablename__ = "kg_props"
  76. id = Column(Integer, primary_key=True, index=True)
  77. category = Column(Integer, default=0)
  78. ref_id = Column(Integer, ForeignKey('kg_nodes.id'), nullable=False)
  79. prop_name = Column(String(64), nullable=False)
  80. prop_title = Column(String(64), nullable=False)
  81. prop_value = Column(Text)
  82. node = relationship("DbKgNode", back_populates="props", foreign_keys=[ref_id], primaryjoin="DbKgProp.ref_id==DbKgNode.id")
  83. #edge = relationship("DbKgEdge", back_populates="props", foreign_keys=[ref_id], primaryjoin="DbKgProp.ref_id==DbKgEdge.id")
  84. class DbKgEdgeProp(Base):
  85. __tablename__ = "kg_edge_props"
  86. id = Column(Integer, primary_key=True, index=True)
  87. category = Column(Integer, default=0)
  88. ref_id = Column(Integer, ForeignKey('kg_edges.id'), nullable=False)
  89. prop_name = Column(String(64), nullable=False)
  90. prop_title = Column(String(64), nullable=False)
  91. prop_value = Column(Text)
  92. edge = relationship("DbKgEdge", back_populates="props", foreign_keys=[ref_id], primaryjoin="DbKgEdgeProp.ref_id==DbKgEdge.id")
  93. class DbDictICD(Base):
  94. __tablename__ = "dict_icd10"
  95. id = Column(Integer, primary_key=True, index=True)
  96. icd_code = Column(String(50), nullable=False)
  97. icd_name = Column(String(150), nullable=False)
  98. class DbDictDRG(Base):
  99. __tablename__ = "dict_drg"
  100. id = Column(Integer, primary_key=True, index=True)
  101. drg_code = Column(String(64), nullable=False)
  102. drg_name = Column(String(128), nullable=False)
  103. drg_weight = Column(Float(128), nullable=False)
  104. class DbDictDrug(Base):
  105. __tablename__ = "dict_social_drug"
  106. id = Column(Integer, primary_key=True, index=True)
  107. data_source = Column(String(10), nullable=True)
  108. drug_code = Column(String(64), nullable=True)
  109. reg_name = Column(String(64), nullable=True)
  110. prod_name = Column(String(128), nullable=True)
  111. reg_dosage_form = Column(String(50), nullable=True)
  112. act_dosage_form = Column(String(50), nullable=True)
  113. reg_spec = Column(String(250), nullable=True)
  114. act_spec = Column(String(250), nullable=True)
  115. pkg_mat = Column(String(150), nullable=True)
  116. min_pack_size = Column(String(50), nullable=True)
  117. min_pack_unit = Column(String(100), nullable=True)
  118. min_dosage_unit = Column(String(100), nullable=True)
  119. prod_factory = Column(String(250), nullable=True)
  120. license_no = Column(String(64), nullable=True)
  121. drug_std_code = Column(String(64), nullable=True)
  122. subpkg_factory = Column(String(64), nullable=True)
  123. sales_status = Column(String(100), nullable=True)
  124. social_insurance_name = Column(String(200), nullable=True)
  125. jiayi_category = Column(String(50), nullable=True)
  126. social_dosage_form = Column(String(50), nullable=True)
  127. serial_no = Column(String(50), nullable=True)
  128. comments = Column(String(300), nullable=True)
  129. class DbKgSchemas(Base):
  130. __tablename__ = "kg_schemas"
  131. id = Column(Integer, primary_key=True, index=True)
  132. schema_system = Column(String(64), nullable=False)
  133. schema_type = Column(String(64), nullable=False)
  134. name = Column(String(64), nullable=False)
  135. category = Column(String(64), nullable=False)
  136. content = Column(Text())
  137. version = Column(String(16))
  138. status = Column(Integer, default=0)
  139. # class DbUsers(Base):
  140. # __tablename__ ="users"
  141. # id = Column(Integer, primary_key=True, index=True)
  142. # username = Column(String(32), nullable=False)
  143. # full_name = Column(String(64), nullable=False)
  144. # email = Column(String(100), nullable=False)
  145. # hashed_password = Column(String(64), nullable=False)
  146. # status = Column(Integer, default=0)
  147. class DbKgDataset(Base):
  148. __tablename__ = "kg_datasets"
  149. id = Column(Integer, primary_key=True, index=True)
  150. data_category = Column(String(64), nullable=False)
  151. data_name = Column(String(64), nullable=False)
  152. data_comments = Column(Text(), nullable=False)
  153. created = Column(DateTime, nullable=False)
  154. updated = Column(DateTime, nullable=False)
  155. status = Column(Integer, default=0)
  156. __all__=['DbKgEdge','DbKgNode','DbKgProp','DbKgEdgeProp','DbDictICD','DbDictDRG',
  157. 'DbDictDrug','DbKgSchemas','DbKgSubGraph','DbKgModels',
  158. 'DbKgGraphs', 'DbKgDataset']