@causalfoundry/react-native-cf-chw-mgmt
Version:
causalfoundry.ai SDK for tracking logs for Community Healthcare Worker's usage of the app.
443 lines (391 loc) • 10.7 kB
text/typescript
// ENUMS
export enum ChwSiteType {
Facility = "facility",
Community = "community"
}
export enum CounselingType {
Lifestyle = "lifestyle",
Psychological = "psychological",
Other = "other"
}
export enum DiagnosisQuestionnaireType {
Phq4 = "phq_4",
CageAid = "cage_aid",
SuicidalIdeation = "suicidal_ideation",
SubstanceAbuse = "substance_abuse",
Phq9 = "phq_9",
Gad7 = "gad_7",
Pregnancy = "pregnancy",
Diabetes = "diabetes",
Hypertension = "hypertension",
MentalHealth = "mental_health",
MaternalHealth = "maternal_health",
Other = "other"
}
export enum DiagnosisSymptomType {
SubstanceUseDisorder = "substance_use_disorder",
Pregnancy = "pregnancy",
Diabetes = "diabetes",
Hypertension = "hypertension",
MentalHealth = "mental_health",
Other = "other"
}
export enum DiagnosisType {
Age = "age",
Gender = "gender",
Height = "height",
Weight = "weight",
Smoker = "smoker",
BloodPressure = "blood_pressure",
BloodGlucose = "blood_glucose",
Bmi = "bmi",
Temperature = "temperature",
Cvd = "cvd",
HbA1c = "hbA1c",
Phq4 = "phq_4",
Phq9 = "phq_9",
Gad7 = "gad_7",
PregnancyStatus = "pregnancy_status",
PregnancyDanger_signs = "pregnancy_danger_signs",
SuicidalIdeation = "suicidal_ideation",
HighRiskPregnancy = "high_risk_pregnancy",
Other = "other",
}
export enum MaternalOutcomeType {
AliveWell = "alive_well",
MaternalDeath = "maternal_death",
Other = "other"
}
export enum NeonatalOutcomeType {
StillBirth = "still_birth",
LiveBirth = "live_birth",
NeonatalDeath = "neonatal_death",
Other = "other"
}
export enum PatientStatusValueType {
N_A = "n_a",
NewPatient = "new_patient",
KnownPatient = "known_patient",
Other = "other"
}
export enum QuestionType {
OpenEnded = "open_ended",
ClosedEnded = "closed_ended",
Nominal = "nominal",
LikertScale = "likert_scale",
RatingScale = "rating_scale",
YesNo = "yes_no",
Interview = "interview",
Other = "other"
}
export enum PregnancyDetailItemType {
Diabetes = "diabetes",
Hypertension = "hypertension",
AncStarted = "anc_started",
FollowupInterest = "followup_interest",
IptDrugs = "ipt_drugs",
Supplements = "supplements",
MosquitoNet = "mosquito_net",
GestationalAge = "gestational_age",
EstimatedDeliveryDate = "estimated_delivery_date",
Other = "other"
}
export enum ChwItemAction {
View = "view",
Add = "add",
Update = "update",
Remove = "remove",
Done = "done"
}
export enum TreatmentFrequency {
Daily = "daily",
Days = "days",
Weeks = "weeks",
Months = "months"
}
export enum TreatmentType {
MedicalReview = "medical_review",
BloodPressure = "blood_pressure",
BloodGlucose = "blood_glucose",
HbA1c = "HbA1c",
cho = "cho",
Other = "other",
}
export enum PrescriptionItemType {
Tablet = "tablet",
Syrup = "syrup",
Injection = "injection",
Insulin = "insulin",
Capsule = "capsule",
Other = "other"
}
export enum ReviewSummaryItem {
ChiefComplaints = "chief_complaints",
PhysicalExaminations = "physical_examinations",
Comorbidities = "comorbidities",
Complications = "complications",
ObstetricExamination = "obstetric_examination",
SystemicExamination = "systemic_examination",
Other = "other",
}
export enum ScreeningType {
Triage = "triage",
Outpatient = "outpatient",
Inpatient = "inpatient",
Pharmacy = "pharmacy",
DoorToDoor = "door_to_door",
Camp = "camp",
Other = "other"
}
export enum ChwModuleType {
Screening = "screening",
Assessment = "assessment",
Enrolment = "enrolment",
MedicalReview = "medical_review",
MyPatients = "my_patients",
Prescription = "prescription",
LifestyleMgmt = "lifestyle_mgmt",
PsychologicalMgmt = "psychological_mgmt",
CounselingMgmt = "counseling_mgmt",
Investigation = "investigation",
TreatmentPlan = "treatment_plan",
Transfers = "transfers",
Other = "other",
}
export enum PrescriptionItemFrequency {
AM = "AM",
PM = "PM",
OD = "OD",
BD = "BD",
TDS = "TDS",
QDS = "QDS",
OM = "OM",
ON = "ON",
CC = "CC",
PC = "PC",
AC = "AC",
PRN = "PRN",
Other = "other"
}
// Item Objects
export interface DiagnosisItem {
type: DiagnosisType,
value: any,
unit: string,
remarks?: string,
diagnosis_date?: number
}
export interface DiagnosisSymptomItem {
type: DiagnosisSymptomType,
symptoms: Array<string>,
remarks: string
}
export interface DiagnosisQuestionnaireObject {
type: DiagnosisQuestionnaireType,
symptoms: Array<DiagnosisQuestionItem>,
instructions: string
}
export interface DiagnosisQuestionItem {
type: QuestionType,
question: string,
reply: string,
score?: number,
remarks?: string
}
export interface PatientStatusItem {
type: DiagnosisSymptomType,
value: PatientStatusValueType,
diagnosis_year: string,
diagnosis_type: string,
is_confirmed: boolean,
remarks?: string
}
export interface TreatmentPlanItem {
type: TreatmentType,
value: number,
frequency: TreatmentFrequency,
action: ChwItemAction,
is_approved: boolean,
remarks: string
}
export interface InvestigationItem {
name: string,
test_value: string,
test_unit: string,
ordered_date: number,
tested_date: number,
action: ChwItemAction,
remarks: string
}
export interface PrescriptionItem {
id: string,
name: string,
dosage_value: any,
dosage_unit: string,
type: PrescriptionItemType,
frequency: PrescriptionItemFrequency,
prescribed_days: number,
action: ChwItemAction,
remarks?: string
}
export interface CounselingPlanItem {
name: string,
action: ChwItemAction,
clinician_notes?: string,
assessment_remarks?: string,
counselor_notes?: string,
referral_date?: number,
assessment_date?: number,
referred_by?: string,
assessed_by?: string,
remarks?: string
}
export interface MedicalReviewObject {
id: string,
diagnosis_results_list: Array<DiagnosisItem>,
patient_status_list: Array<PatientStatusItem>,
clinical_notes: string,
review_summary_list: Array<MedicalReviewSummaryObject>,
next_medical_review: number,
pregnancy_details: PregnancyDetailObject,
lifestyle_assessment_list: Array<DiagnosisQuestionItem>,
remarks?: string
}
export interface MedicalReviewSummaryObject {
type: ReviewSummaryItem,
values: Array<string>
remarks?: string
}
export interface MedicationAdherenceObject {
medication_adherence: string,
lack_adherence_reason: string
}
export interface PregnancyDetailObject {
pregnancy_status: boolean,
last_menstrual_period: number
high_risk: boolean
gravida: number
parity: number
n_fetus: number
neonatal_outcome: NeonatalOutcomeType
maternal_outcome: MaternalOutcomeType
pregnancy_details_list: Array<PregnancyDetailItem>
}
export interface PregnancyDetailItem {
type: PregnancyDetailItemType,
value: any
observation_date: number
}
// EVENT PROPERTIES
export interface ChwModelObject {
type: ChwModuleType
}
export interface SubmitScreeningEventObject {
patient_id: string,
site_id: string,
category: ChwSiteType,
type: ScreeningType,
referred_for_assessment: boolean,
vitals_list: Array<DiagnosisItem>,
diagnosis_symptoms_list: Array<DiagnosisSymptomItem>,
diagnosis_questionnaire_list: Array<DiagnosisQuestionnaireObject>,
diagnosis_values_list: Array<DiagnosisItem>,
diagnosis_results_list: Array<DiagnosisItem>
pregnancy_details: PregnancyDetailObject
}
export interface SubmitAssessmentEventObject {
patient_id: string,
site_id: string,
category: ChwSiteType,
type: ScreeningType,
medication_adherence: MedicationAdherenceObject,
vitals_list: Array<DiagnosisItem>,
diagnosis_questionnaire_list?: Array<DiagnosisQuestionnaireObject>,
diagnosis_values_list: Array<DiagnosisItem>,
diagnosis_results_list: Array<DiagnosisItem>,
diagnosis_symptoms_list: Array<DiagnosisSymptomItem>,
pregnancy_details?: PregnancyDetailObject,
referred_for_assessment: boolean
}
export interface SubmitEnrolmentEventObject {
patient_id: string,
site_id: string,
action: ChwItemAction,
vitals_list: Array<DiagnosisItem>,
diagnosis_values_list: Array<DiagnosisItem>,
diagnosis_results_list: Array<DiagnosisItem>,
patient_status_list: Array<PatientStatusItem>,
diagnosis_questionnaire_list?: Array<DiagnosisQuestionnaireObject>,
pregnancy_details?: PregnancyDetailObject,
treatment_plan_list: Array<TreatmentPlanItem>
}
export interface CounselingEventObject {
patient_id: string,
site_id: string,
id: string,
counseling_type: CounselingType
counseling_plan_list: Array<CounselingPlanItem>,
}
export interface InvestigationEventObject {
patient_id: string,
site_id: string,
id: string,
prescribed_tests_list: Array<InvestigationItem>,
}
export interface TreatmentPlanEventObject {
patient_id: string,
site_id: string,
id: string,
treatment_plan_list: Array<TreatmentPlanItem>,
}
export interface PrescriptionEventObject {
patient_id: string,
site_id: string,
id: string,
prescription_list: Array<PrescriptionItem>,
}
export interface SubmitMedicalReviewObject {
patient_id: string,
site_id: string,
medical_review: MedicalReviewObject
}
// CATALOG VALUES
export interface ChwCatalogModel {
name : string,
role : string,
is_volunteer : boolean,
role_permissions : Array<string>,
site_id_list : Array<string>,
services : Array<string>
}
export interface ChwSiteCatalogModel {
name : string,
country : string,
region_state : string,
city : string,
zipcode : string,
level : string,
category : string,
is_active : boolean,
address : string,
address_type : string,
latitude? : number,
longitude? : number,
culture : string
}
export interface PatientCatalogModel {
name : string,
country : string,
region_state : string,
city : string,
profession : string,
education_level : string,
site_ids_list : Array<string>,
national_id : string,
insurance_id : string,
insurance_type : string,
insurance_status : boolean,
landmark : string,
phone_number_category : string,
program_id : string
}