尝试创建一个医疗记录类型的应用程序,想知道在一个模型中添加多个CPT(程序)或Dx(医疗诊断)代码的最佳方式是什么(例如,一次就诊可以包含在同一次就诊中完成的多个程序,或者一个人可以讨论几种疾病,记录就诊的人将是专业人员,患者将能够看到它)。到目前为止,我有一个用户模型(患者)、一个提供者模型(医疗专业人员)、一个医疗记录模型(属于用户)和一个医疗条目模型(属于医疗记录和提供者)。
我认为我必须为每个代码类型创建一个列,到目前为止,我有一个列用于主dx,然后是辅助dx,它属于医疗条目模型,为了简单起见,将其限制为只有两个,但对于CPT列,我认为这将是一个问题,因为一个典型的提供者将有几个CPT代码,每个代码可以有一个单位计数(例如,多剂量的药物管理等),每个代码都有一个描述。使用文本框会变得杂乱无章,因为每个条目都可能有多个CPT代码,我不认为每个条目都会有很大的文本块。
在模型中组织/执行此想法的最佳方式是什么,而不必为cpt/dx代码和单位计数创建无限数量的列?任何宝石或策略都将非常受欢迎。
发布于 2017-05-23 11:19:14
哦,天哪。在这样的事情上从基本原则出发绝对是一个糟糕的想法。走出去看看别人都做了些什么。几乎所有主要的编码系统,ICD-10,LOINC,SNOMED,READ,CPT等都有资源非常丰富的网站。另外,去看看Indivo的data models吧。微软的Health Vault也有一些有用的references。我在这方面已经做了很多年了,犯错的方法比正确的方法更多。祝好运!
发布于 2017-05-23 10:53:45
首先,您需要创建包含“主记录”诊断和过程列表的规格化表。这是您存储代码、描述等的位置:
class Procedure < ApplicationRecord
end
class Diagnosis < ApplicationRecord
end这避免了重复,并为您提供了一种结构化的方式来设置关联。
要将诊断和过程应用于会诊(访问),您应该设置联接模型:
class Consultation < ApplicationRecord
belongs_to :patient
belongs_to :doctor
has_many :patient_proceedures
has_many :proceedures, through: :patient_proceedures
has_many :patient_diagnoses
has_many :diagnoses, though: :patient_diagnoses # Yeah thats really the plural of diagnosis
end
class PatientProcedure < ApplicationRecord
belongs_to :proceedure
belongs_to :consultation
end
class PatientDiagnosis < ApplicationRecord
belongs_to :diagnosis
belongs_to :consultation
end这只是一种普通的多对多关联。我们还可以添加逆数:
class Procedure < ApplicationRecord
has_many :patient_proceedures
has_many :consultations, through: :patient_proceedures
has_many :patients, through: :consultations
end
class Diagnosis < ApplicationRecord
has_many :patient_diagnoses
has_many :diagnoses, though: :patient_diagnoses
has_many :consultations, through: :patient_diagnoses
has_many :patients, through: :consultations
endhttps://stackoverflow.com/questions/44124709
复制相似问题