80 lines
2.9 KiB
Plaintext
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
|
|
}
|