Files
2025-04-22 11:06:33 +07:00

80 lines
2.9 KiB
Plaintext

// FHIR Patient Resource as Prisma Model
// Based on https://www.hl7.org/fhir/patient.html
// Using the previously defined composite types
// First including all the composite types needed for Patient resource
// (Abbreviated - in production you would include the full definitions from the previous schema)
// PatientCommunication type
type PatientCommunication {
language CodeableConcept
preferred Boolean?
}
// PatientContact type
type PatientContact {
relationship CodeableConcept[]
name HumanName?
telecom ContactPoint[]
address Address?
gender String? // male | female | other | unknown
organization Reference?
period Period?
}
// PatientLink type
type PatientLink {
other Reference
type String // replaced-by | replaces | refer | seealso
}
// Main Patient Model
model Patient {
id String @id @default(auto()) @map("_id") @db.ObjectId
resourceType String @default("Patient")
// Metadata
meta Json?
implicitRules String?
language String?
// Identifiers and administrative information
identifier Identifier[] // An identifier for this patient
active Boolean? // Whether this patient's record is in active use
// Name, gender, birth, deceased
name HumanName[] // A name associated with the patient
telecom ContactPoint[] // A contact detail for the individual
gender String? // male | female | other | unknown
birthDate DateTime? // The date of birth for the individual
deceasedBoolean Boolean? // Indicates if the individual is deceased or not
deceasedDateTime DateTime? // Indicates if the individual is deceased or not
// Address information
address Address[] // An address for the individual
// Patient demographic information
maritalStatus CodeableConcept? // Marital (civil) status of a patient
multipleBirthBoolean Boolean? // Whether patient is part of a multiple birth
multipleBirthInteger Int? // Whether patient is part of a multiple birth
photo Attachment[] // Image of the patient
// Contact information
contact PatientContact[] // A contact party (e.g. guardian, partner, friend) for the patient
// Care provider and communications
communication PatientCommunication[] // A language which may be used to communicate with the patient
generalPractitioner Reference[] // Patient's nominated primary care provider
managingOrganization Reference? // Organization that is the custodian of the patient record
// Link to other patient records
link PatientLink[] // Link to another patient resource that concerns the same actual person
// Extension mechanism
extension Json? // Additional information not captured in other defined elements
// Required for most models
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}