{
  "summary": {
    "entityCount": 5,
    "eventCount": 6,
    "apiCount": 11
  },
  "entities": [
    {
      "id": "patient",
      "pascalName": "Patient",
      "description": "Personal, administrative, and clinical data for individuals receiving care",
      "fields": [
        {
          "name": "pcp",
          "type": "Provider",
          "required": false,
          "description": ""
        },
        {
          "name": "vitals",
          "type": "Vital[]",
          "required": false,
          "description": "Patient vitals"
        },
        {
          "name": "address",
          "type": "Address",
          "required": false,
          "description": "Physical address"
        },
        {
          "name": "problems",
          "type": "Diagnosis[]",
          "required": false,
          "description": ""
        },
        {
          "name": "allergies",
          "type": "Allergy[]",
          "required": false,
          "description": "Patient allergies"
        },
        {
          "name": "insurances",
          "type": "Insurance[]",
          "required": false,
          "description": ""
        },
        {
          "name": "labResults",
          "type": "LabResult[]",
          "required": false,
          "description": "Patient lab results"
        },
        {
          "name": "contactInfo",
          "type": "ContactInfo",
          "required": false,
          "description": "Contact information"
        },
        {
          "name": "identifiers",
          "type": "{ id?: string; mrn?: string; ehrPatientId?: string }",
          "required": false,
          "description": "Unique patient identifier"
        },
        {
          "name": "medications",
          "type": "Medication[]",
          "required": false,
          "description": "Patient medications"
        },
        {
          "name": "demographics",
          "type": "Demographics",
          "required": false,
          "description": "Basic demographic information"
        }
      ]
    },
    {
      "id": "encounter",
      "pascalName": "Encounter",
      "description": "Documentation of healthcare provider meetings and services",
      "fields": [
        {
          "name": "id",
          "type": "string",
          "required": false,
          "description": "Unique encounter identifier"
        },
        {
          "name": "plan",
          "type": "{ generalNotes?: string }",
          "required": false,
          "description": ""
        },
        {
          "name": "type",
          "type": "string",
          "required": false,
          "description": "Type of encounter"
        },
        {
          "name": "isSigned",
          "type": "boolean",
          "required": false,
          "description": "Lock status"
        },
        {
          "name": "provider",
          "type": "Provider",
          "required": false,
          "description": "Attending provider"
        },
        {
          "name": "diagnoses",
          "type": "Diagnosis[]",
          "required": false,
          "description": "Diagnoses from this encounter"
        },
        {
          "name": "objective",
          "type": "{ generalNotes?: string; physicalExamNotes?: string }",
          "required": false,
          "description": ""
        },
        {
          "name": "assessment",
          "type": "{ diagnoses?: Diagnosis[]; generalNotes?: string }",
          "required": false,
          "description": ""
        },
        {
          "name": "subjective",
          "type": "{ generalNotes?: string; chiefComplaintNotes?: string; reviewOfSystemsNotes?: string; historyOfPresentIllnessNotes?: string }",
          "required": false,
          "description": ""
        },
        {
          "name": "identifiers",
          "type": "{ ehrEncounterId?: string }",
          "required": false,
          "description": "Encounter identifiers"
        },
        {
          "name": "dateOfService",
          "type": "date",
          "required": false,
          "description": "Date encounter occurred (ISO 8601)",
          "format": "YYYY-MM-DD"
        },
        {
          "name": "encounterNotes",
          "type": "{ generalNotes?: string }",
          "required": false,
          "description": ""
        },
        {
          "name": "basicInformation",
          "type": "{ type?: string; status?: 'LOCKED' | 'UNLOCKED'; selfPay?: boolean; dateOfService?: date }",
          "required": false,
          "description": ""
        },
        {
          "name": "billingInformation",
          "type": "{ procedureCodes?: Procedure[] }",
          "required": false,
          "description": "Billing-side projection of the encounter (charge-capture inputs)."
        },
        {
          "name": "patientInstructions",
          "type": "{ generalNotes?: string }",
          "required": false,
          "description": ""
        }
      ]
    },
    {
      "id": "order",
      "pascalName": "Order",
      "description": "Formal requests for actions resulting in patient outcomes (LAB, DI, PROCEDURE, RX)",
      "fields": [
        {
          "name": "medication",
          "type": "Medication",
          "required": false,
          "description": "Medications (RX orders only)"
        },
        {
          "name": "assessments",
          "type": "{ assessments?: Diagnosis[] }",
          "required": false,
          "description": ""
        },
        {
          "name": "identifiers",
          "type": "{ ehrOrderId?: string }",
          "required": false,
          "description": ""
        },
        {
          "name": "basicInformation",
          "type": "{ type?: 'LAB' | 'DI' | 'PROCEDURE' | 'RX'; notes?: string; reason?: string; orderName?: string; createdDate?: string; ehrEncounterId?: string }",
          "required": false,
          "description": ""
        },
        {
          "name": "orderingProvider",
          "type": "Provider",
          "required": false,
          "description": "Provider who ordered"
        }
      ]
    },
    {
      "id": "referral",
      "pascalName": "Referral",
      "description": "",
      "fields": [
        {
          "name": "conditions",
          "type": "Diagnosis[]",
          "required": false,
          "description": ""
        },
        {
          "name": "identifiers",
          "type": "{ ehrReferralId?: string }",
          "required": false,
          "description": ""
        },
        {
          "name": "targetProvider",
          "type": "Provider",
          "required": false,
          "description": ""
        },
        {
          "name": "basicInformation",
          "type": "{ notes?: string; status?: string; endDate?: date; reasons?: string; authCode?: string; isLocked?: boolean; priority?: string; specialty?: string; startDate?: date; createdDate?: date; facilityName?: string; numberOfVisits?: number }",
          "required": false,
          "description": ""
        },
        {
          "name": "referringProvider",
          "type": "Provider",
          "required": false,
          "description": ""
        }
      ]
    },
    {
      "id": "providerRecord",
      "pascalName": "ProviderRecord",
      "description": "",
      "fields": [
        {
          "name": "facility",
          "type": "ProviderFacilitty",
          "required": false,
          "description": ""
        },
        {
          "name": "identifiers",
          "type": "{ npi?: string; ehrProviderId?: string }",
          "required": false,
          "description": ""
        },
        {
          "name": "demographics",
          "type": "Demographics",
          "required": false,
          "description": ""
        }
      ]
    }
  ],
  "typeDefinitions": [
    {
      "id": "demographics",
      "pascalName": "Demographics",
      "description": "Basic demographic information",
      "fields": [
        {
          "name": "gender",
          "type": "'male' | 'female'",
          "required": false,
          "description": "Gender"
        },
        {
          "name": "lastName",
          "type": "string",
          "required": false,
          "description": "Last name"
        },
        {
          "name": "firstName",
          "type": "string",
          "required": false,
          "description": "First name"
        },
        {
          "name": "middleName",
          "type": "string",
          "required": false,
          "description": "Middle name"
        },
        {
          "name": "dateOfBirth",
          "type": "date",
          "required": false,
          "description": "Date of birth (ISO 8601 format)",
          "format": "YYYY-MM-DD"
        }
      ]
    },
    {
      "id": "address",
      "pascalName": "Address",
      "description": "Physical address",
      "fields": [
        {
          "name": "city",
          "type": "string",
          "required": false,
          "description": "City"
        },
        {
          "name": "state",
          "type": "string",
          "required": false,
          "description": "State or province",
          "format": "abbreviation"
        },
        {
          "name": "zipCode",
          "type": "string",
          "required": false,
          "description": "ZIP or postal code"
        },
        {
          "name": "address1",
          "type": "string",
          "required": false,
          "description": "Street address line 1"
        },
        {
          "name": "address2",
          "type": "string",
          "required": false,
          "description": "Street address line 2"
        }
      ]
    },
    {
      "id": "contact-info",
      "pascalName": "ContactInfo",
      "description": "Contact information including phone numbers and email",
      "fields": [
        {
          "name": "email",
          "type": "string",
          "required": false,
          "description": "Email address"
        },
        {
          "name": "faxNumber",
          "type": "string",
          "required": false,
          "description": "Fax number",
          "format": "digits-only"
        },
        {
          "name": "homePhoneNumber",
          "type": "string",
          "required": false,
          "description": "Home phone number",
          "format": "digits-only"
        },
        {
          "name": "mobilePhoneNumber",
          "type": "string",
          "required": false,
          "description": "Mobile phone number",
          "format": "digits-only"
        }
      ]
    },
    {
      "id": "provider",
      "pascalName": "Provider",
      "description": "Healthcare provider information",
      "fields": [
        {
          "name": "npi",
          "type": "string",
          "required": false,
          "description": "National Provider Identifier"
        },
        {
          "name": "lastName",
          "type": "string",
          "required": false,
          "description": "Provider last name"
        },
        {
          "name": "firstName",
          "type": "string",
          "required": false,
          "description": "Provider first name"
        },
        {
          "name": "specialty",
          "type": "string",
          "required": false,
          "description": "Provider specialty"
        },
        {
          "name": "middleName",
          "type": "string",
          "required": false,
          "description": "Provider middle name"
        },
        {
          "name": "ehrProviderId",
          "type": "string",
          "required": false,
          "description": "EHR system provider identifier"
        }
      ]
    },
    {
      "id": "allergy",
      "pascalName": "Allergy",
      "description": "Patient allergy information",
      "fields": [
        {
          "name": "allergyDetails",
          "type": "{ name?: string; criticality?: string }",
          "required": false,
          "description": "Details about the allergen"
        },
        {
          "name": "basicInformation",
          "type": "{ status?: string; onsetDate?: date }",
          "required": false,
          "description": "Basic allergy information"
        },
        {
          "name": "allergyReactionDetails",
          "type": "{ name?: string; severity?: string }",
          "required": false,
          "description": "Details about the allergic reaction"
        }
      ]
    },
    {
      "id": "diagnosis",
      "pascalName": "Diagnosis",
      "description": "Clinical diagnosis with standard code",
      "fields": [
        {
          "name": "code",
          "type": "string",
          "required": false,
          "description": "Diagnosis code"
        },
        {
          "name": "status",
          "type": "string",
          "required": false,
          "description": ""
        },
        {
          "name": "system",
          "type": "string",
          "required": false,
          "description": "Coding system (ICD-10, ICD-9, SNOMED-CT)"
        },
        {
          "name": "onSetDate",
          "type": "date",
          "required": false,
          "description": "",
          "format": "YYYY-MM-DD"
        },
        {
          "name": "description",
          "type": "string",
          "required": false,
          "description": "Human-readable description"
        }
      ]
    },
    {
      "id": "medication",
      "pascalName": "Medication",
      "description": "Medication information",
      "fields": [
        {
          "name": "form",
          "type": "string",
          "required": false,
          "description": "Medication form (tablet, capsule, liquid, injection)"
        },
        {
          "name": "status",
          "type": "'active' | 'inactive' | 'discontinued'",
          "required": false,
          "description": "Medication status"
        },
        {
          "name": "endDate",
          "type": "date",
          "required": false,
          "description": "Date the medication was stopped/discontinued",
          "format": "YYYY-MM-DD"
        },
        {
          "name": "ndcCode",
          "type": "string",
          "required": false,
          "description": "National Drug Code"
        },
        {
          "name": "quantity",
          "type": "Quantity",
          "required": false,
          "description": "Quantity prescribed"
        },
        {
          "name": "strength",
          "type": "string",
          "required": false,
          "description": "Medication strength"
        },
        {
          "name": "frequency",
          "type": "string",
          "required": false,
          "description": "Dosing frequency"
        },
        {
          "name": "onSetDate",
          "type": "date",
          "required": false,
          "description": "Date the medication was started",
          "format": "YYYY-MM-DD"
        },
        {
          "name": "recordedDate",
          "type": "date",
          "required": false,
          "description": "Date the medication record was created in the EHR"
        },
        {
          "name": "medicationName",
          "type": "string",
          "required": false,
          "description": "Medication name"
        }
      ]
    },
    {
      "id": "insurance",
      "pascalName": "Insurance",
      "description": "",
      "fields": [
        {
          "name": "groupId",
          "type": "string",
          "required": false,
          "description": ""
        },
        {
          "name": "payerId",
          "type": "string",
          "required": false,
          "description": ""
        },
        {
          "name": "memberId",
          "type": "string",
          "required": false,
          "description": ""
        },
        {
          "name": "isPrimary",
          "type": "boolean",
          "required": false,
          "description": ""
        },
        {
          "name": "payerName",
          "type": "string",
          "required": false,
          "description": ""
        }
      ]
    },
    {
      "id": "vital",
      "pascalName": "Vital",
      "description": "A vital-sign type and its measurement history.",
      "fields": [
        {
          "name": "values",
          "type": "{ value?: string; measurementDate?: date }[]",
          "required": false,
          "description": "Measurement history for this vital type, newest first"
        },
        {
          "name": "basicInformation",
          "type": "{ name?: 'Blood Pressure' | 'Heart Rate' | 'Respiratory Rate' | 'Body Temperature' | 'Oxygen Saturation' | 'Body Height' | 'Body Weight' | 'Body Mass Index' | 'Pain Score' | 'Body Surface Area'; unit?: 'mm[Hg]' | '/min' | '[degF]' | 'Cel' | '%' | 'cm' | '[in_i]' | 'kg' | '[lb_av]' | 'kg/m2' | '1' | 'm2'; loinc?: string }",
          "required": false,
          "description": "Vital-sign type metadata"
        }
      ]
    },
    {
      "id": "procedure",
      "pascalName": "Procedure",
      "description": "Billable procedure with a standard code (CPT)",
      "fields": [
        {
          "name": "code",
          "type": "string",
          "required": false,
          "description": "Procedure code (CPT)"
        },
        {
          "name": "description",
          "type": "string",
          "required": false,
          "description": "Human-readable description of the procedure"
        }
      ]
    },
    {
      "id": "labResult",
      "pascalName": "LabResult",
      "description": "A patient lab result panel and its analyte values",
      "fields": [
        {
          "name": "results",
          "type": "{ date?: date; name?: string; unit?: string; loinc?: string; range?: string; value?: string }[]",
          "required": false,
          "description": "Individual analyte results within the panel"
        },
        {
          "name": "basicInformation",
          "type": "{ cpt?: Procedure; name?: string; resultDate?: date; resultStatus?: string }",
          "required": false,
          "description": "Panel-level information"
        }
      ]
    },
    {
      "id": "quantity",
      "pascalName": "Quantity",
      "description": "",
      "fields": [
        {
          "name": "unit",
          "type": "string",
          "required": false,
          "description": ""
        },
        {
          "name": "value",
          "type": "number",
          "required": false,
          "description": ""
        }
      ]
    },
    {
      "id": "provider-facilitty",
      "pascalName": "ProviderFacilitty",
      "description": "",
      "fields": [
        {
          "name": "name",
          "type": "string",
          "required": false,
          "description": ""
        },
        {
          "name": "address",
          "type": "Address",
          "required": false,
          "description": ""
        },
        {
          "name": "contactInfo",
          "type": "ContactInfo",
          "required": false,
          "description": ""
        }
      ]
    }
  ],
  "eventEnumList": "'chart_open', 'encounter_open', 'referral_start', 'referral_save', 'order_select', 'order_sign'",
  "events": [
    {
      "id": "chart_open",
      "name": "Chart Open",
      "schemaName": "ChartOpenEventSchema",
      "entities": [
        {
          "entityType": "patient",
          "required": true
        }
      ]
    },
    {
      "id": "encounter_open",
      "name": "Encounter Open",
      "schemaName": "EncounterOpenEventSchema",
      "entities": [
        {
          "entityType": "encounter",
          "required": true
        },
        {
          "entityType": "patient",
          "required": true
        }
      ]
    },
    {
      "id": "referral_start",
      "name": "Referral Start",
      "schemaName": "ReferralStartEventSchema",
      "entities": [
        {
          "entityType": "referral",
          "required": true
        }
      ]
    },
    {
      "id": "referral_save",
      "name": "Referral Save",
      "schemaName": "ReferralSaveEventSchema",
      "entities": [
        {
          "entityType": "referral",
          "required": true
        }
      ]
    },
    {
      "id": "order_select",
      "name": "Order Select",
      "schemaName": "OrderSelectEventSchema",
      "entities": [
        {
          "entityType": "order",
          "required": true
        }
      ]
    },
    {
      "id": "order_sign",
      "name": "Order Sign",
      "schemaName": "OrderSignEventSchema",
      "entities": [
        {
          "entityType": "order",
          "required": true
        }
      ]
    }
  ],
  "contextKeys": [
    {
      "key": "chart_open:patient",
      "eventId": "chart_open",
      "entityType": "patient",
      "callbackType": "Patient"
    },
    {
      "key": "encounter_open:encounter",
      "eventId": "encounter_open",
      "entityType": "encounter",
      "callbackType": "Encounter"
    },
    {
      "key": "encounter_open:patient",
      "eventId": "encounter_open",
      "entityType": "patient",
      "callbackType": "Patient"
    },
    {
      "key": "referral_start:referral",
      "eventId": "referral_start",
      "entityType": "referral",
      "callbackType": "Referral"
    }
  ],
  "apiNamespaces": [
    {
      "namespace": "patient",
      "methods": [
        {
          "signature": "getPatient()",
          "operation": "getById",
          "returnType": "Patient",
          "paginated": false
        },
        {
          "signature": "getProblems()",
          "operation": "getById",
          "returnType": "Diagnosis[]",
          "paginated": false
        },
        {
          "signature": "getInsurances()",
          "operation": "getById",
          "returnType": "Insurance[]",
          "paginated": false
        },
        {
          "signature": "getAllergies(input?)",
          "operation": "search",
          "returnType": "Allergy[]",
          "paginated": true
        },
        {
          "signature": "getLabResults(input?)",
          "operation": "search",
          "returnType": "LabResult[]",
          "paginated": true
        },
        {
          "signature": "getMedications()",
          "operation": "getById",
          "returnType": "Medication[]",
          "paginated": false
        },
        {
          "signature": "getVitals()",
          "operation": "getById",
          "returnType": "Vital[]",
          "paginated": false
        }
      ]
    },
    {
      "namespace": "encounter",
      "methods": [
        {
          "signature": "updateProcedureCodes(data)",
          "operation": "updateById",
          "returnType": "unknown",
          "paginated": false
        },
        {
          "signature": "getProcedureCodes()",
          "operation": "getById",
          "returnType": "Encounter",
          "paginated": false
        }
      ]
    },
    {
      "namespace": "order",
      "methods": [
        {
          "signature": "getOrderById()",
          "operation": "getById",
          "returnType": "Order",
          "paginated": false
        }
      ]
    },
    {
      "namespace": "provider",
      "methods": [
        {
          "signature": "getById()",
          "operation": "getById",
          "returnType": "ProviderRecord",
          "paginated": false
        }
      ]
    }
  ]
}