"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FieldsValidationSchema = exports.fields = void 0;
const extensions_core_1 = require("@awell-health/extensions-core");
const zod_1 = __importDefault(require("zod"));
exports.fields = {
    patientId: {
        id: 'patientId',
        label: 'Patient ID',
        description: 'The patient for whom the the history is being created',
        type: extensions_core_1.FieldType.NUMERIC,
        required: true,
    },
    practiceId: {
        id: 'practiceId',
        label: 'Practice ID',
        description: 'Practice ID where the vitas are beind measured for the patient',
        type: extensions_core_1.FieldType.NUMERIC,
        required: true,
    },
    visitNoteId: {
        id: 'visitNoteId',
        label: 'Visit Note ID',
        description: 'When provided, the vitals will be attached to the visit note. Note that vitals can only be attached to unsigned visit notes.',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    nonVisitNoteId: {
        id: 'nonVisitNoteId',
        label: 'Non-Visit Note ID',
        description: 'When provided, the vitals will be attached to the non-visit note. Note that vitals can only be attached to unsigned non-visit notes.',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    bmi: {
        id: 'bmi',
        label: 'BMI',
        description: 'Body Mass Index; optional and calculated if height and weight are available',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    height: {
        id: 'height',
        label: 'Height',
        description: 'Patient height in inches',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    heightNote: {
        id: 'heightNote',
        label: 'Height Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    weight: {
        id: 'weight',
        label: 'Weight',
        description: 'Patient weight in lbs',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    weightNote: {
        id: 'weightNote',
        label: 'Weight Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    oxygen: {
        id: 'oxygen',
        label: 'Oxygen',
        description: 'Oxygen',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    oxygenNote: {
        id: 'oxygenNote',
        label: 'Oxygen Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    rr: {
        id: 'rr',
        label: 'Respiratory Rate (rr)',
        description: 'Respiratory rate',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    rrNote: {
        id: 'rrNote',
        label: 'Respiratory Rate Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    hr: {
        id: 'hr',
        label: 'Heart Rate (hr)',
        description: 'Heart rate',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    hrNote: {
        id: 'hrNote',
        label: 'Heart Rate Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    hc: {
        id: 'hc',
        label: 'Head Circumference (hc)',
        description: 'Head circumference',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    hcNote: {
        id: 'hcNote',
        label: 'Head Circumference Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    temperature: {
        id: 'temperature',
        label: 'Temperature',
        description: 'Temperature',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    temperatureNote: {
        id: 'temperatureNote',
        label: 'Temperature Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    bp: {
        id: 'bp',
        label: 'Blood Pressure (bp)',
        description: 'Blood pressure',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    bpNote: {
        id: 'bpNote',
        label: 'Blood Pressure Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    bodyfat: {
        id: 'bodyfat',
        label: 'Body Fat',
        description: 'Body fat percentage',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    bodyfatNote: {
        id: 'bodyfatNote',
        label: 'Body Fat Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    dlm: {
        id: 'dlm',
        label: 'Dry Lean Mass (dlm)',
        description: 'Dry lean mass',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    dlmNote: {
        id: 'dlmNote',
        label: 'Dry Lean Mass Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    bfm: {
        id: 'bfm',
        label: 'Body Fat Mass (bfm)',
        description: 'Body fat mass',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    bfmNote: {
        id: 'bfmNote',
        label: 'Body Fat Mass Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
    wc: {
        id: 'wc',
        label: 'Waist Circumference (wc)',
        description: 'Waist circumference',
        type: extensions_core_1.FieldType.NUMERIC,
        required: false,
    },
    wcNote: {
        id: 'wcNote',
        label: 'Waist Circumference Note',
        description: '',
        type: extensions_core_1.FieldType.STRING,
        required: false,
    },
};
exports.FieldsValidationSchema = zod_1.default.object({
    patientId: extensions_core_1.NumericIdSchema,
    practiceId: extensions_core_1.NumericIdSchema,
    visitNoteId: extensions_core_1.NumericIdSchema.optional(),
    nonVisitNoteId: extensions_core_1.NumericIdSchema.optional(),
    bmi: zod_1.default.number().optional(),
    height: zod_1.default.number().optional(),
    heightNote: zod_1.default.string().optional(),
    weight: zod_1.default.number().optional(),
    weightNote: zod_1.default.string().optional(),
    oxygen: zod_1.default.number().optional(),
    oxygenNote: zod_1.default.string().optional(),
    rr: zod_1.default.number().optional(),
    rrNote: zod_1.default.string().optional(),
    hr: zod_1.default.number().optional(),
    hrNote: zod_1.default.string().optional(),
    hc: zod_1.default.number().optional(),
    hcNote: zod_1.default.string().optional(),
    temperature: zod_1.default.number().optional(),
    temperatureNote: zod_1.default.string().optional(),
    bp: zod_1.default.number().optional(),
    bpNote: zod_1.default.string().optional(),
    bodyfat: zod_1.default.number().optional(),
    bodyfatNote: zod_1.default.string().optional(),
    dlm: zod_1.default.number().optional(),
    dlmNote: zod_1.default.string().optional(),
    bfm: zod_1.default.number().optional(),
    bfmNote: zod_1.default.string().optional(),
    wc: zod_1.default.number().optional(),
    wcNote: zod_1.default.string().optional(),
});
//# sourceMappingURL=fields.js.map