dotimplement / HealthChain

Simplify prototyping and testing LLM applications in healthcare context 💫 🏥
https://dotimplement.github.io/HealthChain/
Apache License 2.0
10 stars 1 forks source link

Integrate DoppelData and EHR layers #10

Closed jenniferjiangkells closed 3 months ago

jenniferjiangkells commented 3 months ago

TODOs

@adamkells

@jenniferjiangkells

jenniferjiangkells commented 3 months ago

ONLY GENERATE ESSENTIAL FIELDS

MIGHT DO

WON'T DOS

Resources

Encounter

"status" : "<code>", // R!  planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown
"class" : [{ CodeableConcept }], // Classification of patient encounter context - e.g. Inpatient, outpatient icon 
"priority" : { CodeableConcept }, // Indicates the urgency of the encounter
"actualPeriod" : { Period }, // The actual start and end time of the encounter
"location" : [{ // List of locations where the patient has been
    "location" : { Reference(Location) }, // R!  Location the encounter takes place
    "status" : "<code>", // planned | active | reserved | completed
    "form" : { CodeableConcept }, // The physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.)
    "period" : { Period } // Time period during which the patient was present at the location
  }]

Condition

"clinicalStatus" : { CodeableConcept }, // I R!  active | recurrence | relapse | inactive | remission | resolved | unknown
"category" : [{ CodeableConcept }], // I problem-list-item | encounter-diagnosis
"severity" : { CodeableConcept }, // Subjective severity of condition
"code" : { CodeableConcept }, // Identification of the condition, problem or diagnosis
"subject" : { Reference(Group|Patient) }, // R!  Who has the condition?
"encounter" : { Reference(Encounter) },
"onsetDateTime" : "<dateTime>",
"abatementDateTime" : "<dateTime>",
"recordedDate" : "<dateTime>", // Date condition was first recorded

Procedure

"status" : "<code>", // R!  preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
"subject" : { Reference(Device|Group|Location|Organization|Patient|
   Practitioner) }, // R!  Individual or entity the procedure was performed on
"code" : { CodeableConcept }, // Identification of the procedure
"encounter" : { Reference(Encounter) }, // The Encounter during which this Procedure was created

MedicationRequest

"status" : "<code>", // R!  active | on-hold | ended | stopped | completed | cancelled | entered-in-error | draft | unknown
"intent" : "<code>", // R!  proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
"medication" : { CodeableReference(Medication) }, // R!  Medication to be taken
"subject" : { Reference(Group|Patient) }, // R!  Individual or group for whom the medication has been requested
"encounter" : { Reference(Encounter) }, // Encounter created as part of encounter/admission/stay
"dispenseRequest" : { // Medication supply authorization
    "initialFill" : { // First fill details
      "quantity" : { Quantity(SimpleQuantity) }, // First fill quantity
      "duration" : { Duration } // First fill duration
    },

maybe - "dosageInstruction" - but dosages could be a whole can of worms to open 🐛

Then, allow users to inject free text into this resource:

DocumentReference

"status" : "<code>", // R!  current | superseded | entered-in-error
"context" : [{ Reference(Appointment|Encounter|EpisodeOfCare) }], // I Encounter the document reference is part of
"content" : [{ // R!  Document referenced
    "attachment" : { Attachment }, // R!  Where to access the document

Note attachment needs to be base64 encoded data (screams into the sky). I think we'll just put in a note here and use plain text for now.

@adamkells

jenniferjiangkells commented 3 months ago

@adamkells

Workflow mapping

encounter-discharge : Encounter, Condition, Procedure, MedicationRequest, DocumentReference

patient-view: Patient, Condition, Encounter, (FUTURE: MedicationStatement, AllergyIntolerance)

The order hooks are not fully implemented, so don't worry about it for now - but for future reference:

oder-sign: MedicationRequest, ProcedureRequest, ServiceRequest order-select: MedicationRequest, ProcedureRequest, ServiceRequest

jenniferjiangkells commented 3 months ago

To complete issue