models.py 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. from sqlalchemy import Column, Integer, String, Text, ForeignKey,Float, DateTime
  2. from sqlalchemy.orm import relationship
  3. from .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. class DbKgProp(Base):
  74. __tablename__ = "kg_props"
  75. id = Column(Integer, primary_key=True, index=True)
  76. category = Column(Integer, default=0)
  77. ref_id = Column(Integer, ForeignKey('kg_nodes.id'), nullable=False)
  78. prop_name = Column(String(64), nullable=False)
  79. prop_title = Column(String(64), nullable=False)
  80. prop_value = Column(Text)
  81. node = relationship("DbKgNode", back_populates="props", foreign_keys=[ref_id], primaryjoin="DbKgProp.ref_id==DbKgNode.id")
  82. #edge = relationship("DbKgEdge", back_populates="props", foreign_keys=[ref_id], primaryjoin="DbKgProp.ref_id==DbKgEdge.id")
  83. class DbDictICD(Base):
  84. __tablename__ = "dict_icd10"
  85. id = Column(Integer, primary_key=True, index=True)
  86. icd_code = Column(String(50), nullable=False)
  87. icd_name = Column(String(150), nullable=False)
  88. class DbDictDRG(Base):
  89. __tablename__ = "dict_drg"
  90. id = Column(Integer, primary_key=True, index=True)
  91. drg_code = Column(String(64), nullable=False)
  92. drg_name = Column(String(128), nullable=False)
  93. drg_weight = Column(Float(128), nullable=False)
  94. class DbDictDrug(Base):
  95. __tablename__ = "dict_social_drug"
  96. id = Column(Integer, primary_key=True, index=True)
  97. data_source = Column(String(10), nullable=True)
  98. drug_code = Column(String(64), nullable=True)
  99. reg_name = Column(String(64), nullable=True)
  100. prod_name = Column(String(128), nullable=True)
  101. reg_dosage_form = Column(String(50), nullable=True)
  102. act_dosage_form = Column(String(50), nullable=True)
  103. reg_spec = Column(String(250), nullable=True)
  104. act_spec = Column(String(250), nullable=True)
  105. pkg_mat = Column(String(150), nullable=True)
  106. min_pack_size = Column(String(50), nullable=True)
  107. min_pack_unit = Column(String(100), nullable=True)
  108. min_dosage_unit = Column(String(100), nullable=True)
  109. prod_factory = Column(String(250), nullable=True)
  110. license_no = Column(String(64), nullable=True)
  111. drug_std_code = Column(String(64), nullable=True)
  112. subpkg_factory = Column(String(64), nullable=True)
  113. sales_status = Column(String(100), nullable=True)
  114. social_insurance_name = Column(String(200), nullable=True)
  115. jiayi_category = Column(String(50), nullable=True)
  116. social_dosage_form = Column(String(50), nullable=True)
  117. serial_no = Column(String(50), nullable=True)
  118. comments = Column(String(300), nullable=True)
  119. class DbKgSchemas(Base):
  120. __tablename__ = "kg_schemas"
  121. id = Column(Integer, primary_key=True, index=True)
  122. schema_system = Column(String(64), nullable=False)
  123. schema_type = Column(String(64), nullable=False)
  124. name = Column(String(64), nullable=False)
  125. category = Column(String(64), nullable=False)
  126. content = Column(Text())
  127. version = Column(String(16))
  128. status = Column(Integer, default=0)
  129. class DbUsers(Base):
  130. __tablename__ ="users"
  131. id = Column(Integer, primary_key=True, index=True)
  132. username = Column(String(32), nullable=False)
  133. full_name = Column(String(64), nullable=False)
  134. email = Column(String(100), nullable=False)
  135. hashed_password = Column(String(64), nullable=False)
  136. status = Column(Integer, default=0)
  137. class DbKgDataset(Base):
  138. __tablename__ = "kg_datasets"
  139. id = Column(Integer, primary_key=True, index=True)
  140. data_category = Column(String(64), nullable=False)
  141. data_name = Column(String(64), nullable=False)
  142. data_comments = Column(Text(), nullable=False)
  143. created = Column(DateTime, nullable=False)
  144. updated = Column(DateTime, nullable=False)
  145. status = Column(Integer, default=0)
  146. __all__=['DbKgEdge','DbKgNode','DbKgProp','DbDictICD','DbDictDRG',
  147. 'DbDictDrug','DbKgSchemas','DbKgSubGraph','DbKgModels',
  148. 'DbKgGraphs', 'DbKgDataset']