@centricare/contract 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -50
- package/dist/index.cjs +1469 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +3324 -0
- package/dist/index.d.ts +3322 -5
- package/dist/index.mjs +1325 -0
- package/dist/index.mjs.map +1 -0
- package/dist/registry/index.cjs +412 -0
- package/dist/registry/index.cjs.map +1 -0
- package/dist/registry/index.d.mts +60 -0
- package/dist/registry/index.d.ts +60 -0
- package/dist/registry/index.mjs +405 -0
- package/dist/registry/index.mjs.map +1 -0
- package/package.json +29 -8
- package/dist/commons/api-response.d.ts +0 -178
- package/dist/commons/api-response.d.ts.map +0 -1
- package/dist/commons/api-response.js +0 -49
- package/dist/commons/api-response.js.map +0 -1
- package/dist/commons/coded-concept.d.ts +0 -28
- package/dist/commons/coded-concept.d.ts.map +0 -1
- package/dist/commons/coded-concept.js +0 -20
- package/dist/commons/coded-concept.js.map +0 -1
- package/dist/commons/index.d.ts +0 -9
- package/dist/commons/index.d.ts.map +0 -1
- package/dist/commons/index.js +0 -9
- package/dist/commons/index.js.map +0 -1
- package/dist/commons/setting-option.d.ts +0 -37
- package/dist/commons/setting-option.d.ts.map +0 -1
- package/dist/commons/setting-option.js +0 -27
- package/dist/commons/setting-option.js.map +0 -1
- package/dist/commons/timestamp.d.ts +0 -7
- package/dist/commons/timestamp.d.ts.map +0 -1
- package/dist/commons/timestamp.js +0 -9
- package/dist/commons/timestamp.js.map +0 -1
- package/dist/example.test.d.ts +0 -6
- package/dist/example.test.d.ts.map +0 -1
- package/dist/example.test.js +0 -147
- package/dist/example.test.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/models/index.d.ts +0 -6
- package/dist/models/index.d.ts.map +0 -1
- package/dist/models/index.js +0 -6
- package/dist/models/index.js.map +0 -1
- package/dist/models/settings.d.ts +0 -189
- package/dist/models/settings.d.ts.map +0 -1
- package/dist/models/settings.js +0 -34
- package/dist/models/settings.js.map +0 -1
- package/dist/models/user.d.ts +0 -1110
- package/dist/models/user.d.ts.map +0 -1
- package/dist/models/user.js +0 -59
- package/dist/models/user.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commons/timestamp.ts","../src/commons/api-response.ts","../src/commons/setting-option.ts","../src/registry/registry.json","../src/registry/registry.ts","../src/commons/coded-concept.ts","../src/commons/demographic.ts","../src/commons/address.ts","../src/commons/object-id.ts","../src/models/user/user.schema.ts","../src/models/user/user-settings.schema.ts","../src/models/user/user-minimal.schema.ts","../src/models/user/user-partial.schema.ts","../src/models/assignment/assignment.schema.ts","../src/models/assignment/assignment-minimal.schema.ts","../src/models/assignment/assignment-partial.schema.ts","../src/models/department/department.schema.ts","../src/models/department/department-minimal.schema.ts","../src/models/department/department-partial.schema.ts","../src/models/facility/facility.schema.ts","../src/models/facility/facility-settings.schema.ts","../src/models/facility/facility-minimal.schema.ts","../src/models/facility/facility-partial.schema.ts","../src/models/location/location.schema.ts","../src/models/location/location-settings.schema.ts","../src/models/location/location-minimal.schema.ts","../src/models/location/location-partial.schema.ts","../src/models/member/member.schema.ts","../src/models/member/member-minimal.schema.ts","../src/models/member/member-partial.schema.ts","../src/models/organization/organization.schema.ts","../src/models/organization/organization-settings.schema.ts","../src/models/organization/organization-minimal.schema.ts","../src/models/organization/organization-partial.schema.ts","../src/models/patient/patient.schema.ts","../src/models/patient/patient-minimal.schema.ts","../src/models/patient/patient-partial.schema.ts","../src/models/patient-additional/patient-additional.schema.ts","../src/models/patient-additional/patient-additional-minimal.schema.ts","../src/models/patient-additional/patient-additional-partial.schema.ts","../src/models/staff/staff.schema.ts","../src/models/staff/staff-minimal.schema.ts","../src/models/staff/staff-partial.schema.ts","../src/models/unit/unit.schema.ts","../src/models/unit/unit-minimal.schema.ts","../src/models/unit/unit-partial.schema.ts","../src/models/practitioner-schedule/practitioner-schedule.schema.ts","../src/models/practitioner-schedule/practitioner-schedule-minimal.schema.ts","../src/models/practitioner-schedule/practitioner-schedule-partial.schema.ts","../src/models/practitioner-session/practitioner-session.schema.ts","../src/models/practitioner-session/practitioner-session-minimal.schema.ts","../src/models/practitioner-session/practitioner-session-partial.schema.ts","../src/models/ksm/ksm.schema.ts","../src/models/ksm/ksm-minimal.schema.ts","../src/models/ksm/ksm-partial.schema.ts","../src/models/payer/payer.schema.ts","../src/models/payer/payer-settings.schema.ts","../src/models/payer/payer-minimal.schema.ts","../src/models/payer/payer-partial.schema.ts","../src/models/queue/queue.schema.ts","../src/models/queue/queue-settings.schema.ts","../src/models/queue/queue-minimal.schema.ts","../src/models/queue/queue-partial.schema.ts","../src/models/queue-event-log/queue-event-log.schema.ts","../src/models/queue-event-log/queue-event-log-minimal.schema.ts","../src/models/queue-event-log/queue-event-log-partial.schema.ts","../src/models/queue-number/queue-number.schema.ts","../src/models/queue-number/queue-number-settings.schema.ts","../src/models/queue-number/queue-number-minimal.schema.ts","../src/models/queue-number/queue-number-partial.schema.ts"],"names":["z","isoDatetimeRegex","toMongooseSchema","model"],"mappings":"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","file":"index.mjs","sourcesContent":["import { z } from \"zod\";\n\nconst isoDatetimeRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})$/;\n\n/**\n * ISO 8601 timestamp string.\n */\nexport const timestampSchema = z.string().refine(\n (val) => isoDatetimeRegex.test(val),\n { message: 'Invalid timestamp: must be an ISO 8601 datetime' },\n);\n\nexport type Timestamp = z.infer<typeof timestampSchema>;\n","import { z } from \"zod\";\n\n/**\n * Pagination metadata included in every standardized API response.\n */\nexport const metadataSchema = z.object({\n total: z.number().int().nonnegative(),\n offset: z.number().int().nonnegative(),\n limit: z.number().int().nonnegative(),\n next: z.string().nullable(),\n previous: z.string().nullable(),\n});\n\nexport type Metadata = z.infer<typeof metadataSchema>;\n\n/**\n * Standardized API response envelope used by CentriCare services.\n * Based on /Docs/API/1. Standardized Response.md\n *\n * {\n * \"success\": true,\n * \"message\": \"Successfully do something\",\n * \"status_code\": \"200\",\n * \"data\": [],\n * \"metadata\": {\n * \"total\": 1,\n * \"offset\": 0,\n * \"limit\": 1,\n * \"next\": null,\n * \"previous\": null\n * }\n * }\n */\nexport const apiResponseSchema = <T extends z.ZodTypeAny>(dataSchema: T) =>\n z.object({\n success: z.boolean(),\n message: z.string(),\n status_code: z.string(),\n data: z.array(dataSchema),\n metadata: metadataSchema,\n });\n\nexport type ApiResponse<T> = {\n success: boolean;\n message: string;\n status_code: string;\n data: T[];\n metadata: Metadata;\n};\n\n/**\n * Schema for a single-resource API response.\n * For single-resource requests, metadata.total is always 1,\n * offset and limit default to 0, and next/previous are null.\n */\nexport const singleResourceResponseSchema = <T extends z.ZodTypeAny>(\n dataSchema: T\n) =>\n apiResponseSchema(dataSchema).refine(\n (data) =>\n data.metadata.total === 1 &&\n data.metadata.offset === 0 &&\n data.metadata.limit === 0 &&\n data.metadata.next === null &&\n data.metadata.previous === null,\n {\n message:\n \"Single resource response metadata must have total=1, offset=0, limit=0, next=null, previous=null\",\n }\n );\n\nexport type SingleResourceResponse<T extends z.ZodTypeAny> = z.infer<\n ReturnType<typeof singleResourceResponseSchema<T>>\n>;\n","import { z } from \"zod\";\n\n/**\n * The type of a setting option value.\n *\n * Accepts \"string\", \"number\", \"boolean\", \"date\", or an array of those\n * for options with multiple choices. Also accepts any valid registry system\n * path (e.g. \"crn:status:system\") for options whose input type is determined\n * by a registry code system.\n */\nexport const settingOptionTypeSchema = z.union([\n z.enum([\"string\", \"number\", \"boolean\", \"date\"]),\n z.array(z.enum([\"string\", \"number\", \"boolean\", \"date\"])),\n z.string(),\n]);\n\nexport type SettingOptionType = z.infer<typeof settingOptionTypeSchema>;\n\n/**\n * A single setting option item.\n *\n * - `default` and `value` can be null but cannot be undefined or missing.\n */\nexport const settingOptionSchema = z.object({\n field: z.string().min(1, { message: \"field is required\" }),\n label: z.string().optional(),\n type: settingOptionTypeSchema,\n default: z.string().nullable(),\n value: z.union([z.string(), z.boolean(), z.number()]).nullable(),\n});\n\nexport type SettingOption = z.infer<typeof settingOptionSchema>;\n","{\n \"schema_version\": \"1.0\",\n \"source\": \"https://centricare-rakakhrl.flowershow.me/Docs/Registry\",\n \"systems\": [\n {\n \"system\": \"crn:status:system\",\n \"domain\": \"status\",\n \"variant\": \"system\",\n \"display\": \"System Status\",\n \"description\": \"Status of a record\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"active\", \"display\": \"Active\", \"description\": \"Record is still active and valid\", \"status\": \"Active\" },\n { \"value\": \"inactive\", \"display\": \"Inactive\", \"description\": \"Record is no longer active and valid\", \"status\": \"Active\" },\n { \"value\": \"suspended\", \"display\": \"Suspended\", \"description\": \"Record is suspended and may not be used or valid until the suspension is over\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:status:patient\",\n \"domain\": \"status\",\n \"variant\": \"patient\",\n \"display\": \"Patient Status\",\n \"description\": \"Patient-specific status codes\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"blacklisted\", \"display\": \"Blacklisted\", \"description\": \"Patient is blacklisted from the facility\", \"status\": \"Active\" },\n { \"value\": \"deceased\", \"display\": \"Deceased\", \"description\": \"Patient is already deceased\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:status:marital\",\n \"domain\": \"status\",\n \"variant\": \"marital\",\n \"display\": \"Marital Status\",\n \"description\": \"Marital status codes\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"married\", \"display\": \"Married\", \"description\": \"Person is married\", \"status\": \"Active\" },\n { \"value\": \"unmarried\", \"display\": \"Unmarried\", \"description\": \"Person is not married\", \"status\": \"Active\" },\n { \"value\": \"widowed\", \"display\": \"Widowed\", \"description\": \"Person is widowed due to the death of their spouse\", \"status\": \"Active\" },\n { \"value\": \"divorced\", \"display\": \"Divorced\", \"description\": \"Person is legally divorced\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:status:operational\",\n \"domain\": \"status\",\n \"variant\": \"operational\",\n \"display\": \"Operational Status\",\n \"description\": \"Resource operational status\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"open\", \"display\": \"Open\", \"description\": \"Resource is open and operating\", \"status\": \"Active\" },\n { \"value\": \"closed\", \"display\": \"Closed\", \"description\": \"Resource is closed and not operating\", \"status\": \"Active\" },\n { \"value\": \"maintenance\", \"display\": \"Maintenance\", \"description\": \"Resource is in maintenance and not operating\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:status:queue\",\n \"domain\": \"status\",\n \"variant\": \"queue\",\n \"display\": \"Queue Status\",\n \"description\": \"Queue number status\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"idle\", \"display\": \"Idle\", \"description\": \"Queue number are not in progress\", \"status\": \"Active\" },\n { \"value\": \"in-progress\", \"display\": \"In Progress\", \"description\": \"Queue number are in progress\", \"status\": \"Active\" },\n { \"value\": \"done\", \"display\": \"Done\", \"description\": \"Queue number are done with service\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:salutation\",\n \"domain\": \"salutation\",\n \"variant\": null,\n \"display\": \"Salutation\",\n \"description\": \"Person salutations/honorifics\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"tuan\", \"display\": \"Tn.\", \"description\": \"Adult male honorific or title (Mr.)\", \"status\": \"Active\" },\n { \"value\": \"nyonya\", \"display\": \"Ny.\", \"description\": \"Married or adult female honorific or title (Mrs.)\", \"status\": \"Active\" },\n { \"value\": \"anak\", \"display\": \"An.\", \"description\": \"Child or pediatric patient honorific\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:sex\",\n \"domain\": \"sex\",\n \"variant\": null,\n \"display\": \"Biological Sex\",\n \"description\": \"Biological and physiological characteristics\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"m\", \"display\": \"Male\", \"description\": \"Male characteristics\", \"status\": \"Active\" },\n { \"value\": \"f\", \"display\": \"Female\", \"description\": \"Female characteristics\", \"status\": \"Active\" },\n { \"value\": \"i\", \"display\": \"Intersex\", \"description\": \"Biological sex characteristics that do not fit typical medical definitions\", \"status\": \"Proposed\" }\n ]\n },\n {\n \"system\": \"crn:believes\",\n \"domain\": \"believes\",\n \"variant\": null,\n \"display\": \"Religion/Belief\",\n \"description\": \"Religion or belief system\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"islam\", \"display\": \"Islam\", \"description\": \"The islamic belief system\", \"status\": \"Active\" },\n { \"value\": \"protestantism\", \"display\": \"Protestant\", \"description\": \"The protestantism belief system\", \"status\": \"Active\" },\n { \"value\": \"catholicism\", \"display\": \"Catholic\", \"description\": \"The catholicism belief system\", \"status\": \"Active\" },\n { \"value\": \"hinduism\", \"display\": \"Hindu\", \"description\": \"The hinduism belief system\", \"status\": \"Active\" },\n { \"value\": \"buddhism\", \"display\": \"Buddha\", \"description\": \"The buddhism belief system\", \"status\": \"Active\" },\n { \"value\": \"confucianism\", \"display\": \"Confucian\", \"description\": \"The confucianism belief system\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:blood:type\",\n \"domain\": \"blood\",\n \"variant\": \"type\",\n \"display\": \"Blood Type\",\n \"description\": \"Blood group types\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"a\", \"display\": \"A\", \"description\": \"Blood group A\", \"status\": \"Active\" },\n { \"value\": \"b\", \"display\": \"B\", \"description\": \"Blood group B\", \"status\": \"Active\" },\n { \"value\": \"ab\", \"display\": \"AB\", \"description\": \"Blood group AB\", \"status\": \"Active\" },\n { \"value\": \"o\", \"display\": \"O\", \"description\": \"Blood group O\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:blood:rhesus\",\n \"domain\": \"blood\",\n \"variant\": \"rhesus\",\n \"display\": \"Rhesus Factor\",\n \"description\": \"RhD antigen presence\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"positive\", \"display\": \"Rh-Positive (+)\", \"description\": \"Presence of Rhesus (RhD) antigen\", \"status\": \"Active\" },\n { \"value\": \"negative\", \"display\": \"Rh-Negative (-)\", \"description\": \"Absence of Rhesus (RhD) antigen\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:flag:tier\",\n \"domain\": \"flag\",\n \"variant\": \"tier\",\n \"display\": \"Priority Tier\",\n \"description\": \"Priority/precedence levels\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"primary\", \"display\": \"Primary\", \"description\": \"Highest level of priority\", \"status\": \"Active\" },\n { \"value\": \"secondary\", \"display\": \"Secondary\", \"description\": \"Secondary level of priority\", \"status\": \"Active\" },\n { \"value\": \"tertiary\", \"display\": \"Tertiary\", \"description\": \"Third-tier or lowest level of priority\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:flag:intensity\",\n \"domain\": \"flag\",\n \"variant\": \"intensity\",\n \"display\": \"Intensity Level\",\n \"description\": \"Intensity/severity levels\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"very-low\", \"display\": \"Very Low\", \"description\": \"Minimal or lowest level of intensity\", \"status\": \"Active\" },\n { \"value\": \"low\", \"display\": \"Low\", \"description\": \"Minor or low level of intensity\", \"status\": \"Active\" },\n { \"value\": \"medium\", \"display\": \"Medium\", \"description\": \"Moderate or average level of intensity\", \"status\": \"Active\" },\n { \"value\": \"high\", \"display\": \"High\", \"description\": \"High or elevated level of intensity\", \"status\": \"Active\" },\n { \"value\": \"very-high\", \"display\": \"Very High\", \"description\": \"Extreme or critical level of intensity\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:mrn:separator\",\n \"domain\": \"mrn\",\n \"variant\": \"separator\",\n \"display\": \"MRN Separator\",\n \"description\": \"Medical Record Number separators\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"dash\", \"display\": \"Dash (-)\", \"description\": \"Use dash as separator\", \"status\": \"Active\" },\n { \"value\": \"dot\", \"display\": \"Dot (.)\", \"description\": \"Use dot as separator\", \"status\": \"Active\" },\n { \"value\": \"none\", \"display\": \"None\", \"description\": \"No separator\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:patient:additional\",\n \"domain\": \"patient\",\n \"variant\": \"additional\",\n \"display\": \"Patient Additional Info Types\",\n \"description\": \"Types of patient additional information\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"emergency-contact\", \"display\": \"Emergency Contact\", \"description\": \"Patient emergency contact info\", \"status\": \"Active\" },\n { \"value\": \"emergency-address\", \"display\": \"Emergency Address\", \"description\": \"Patient emergency address info\", \"status\": \"Active\" },\n { \"value\": \"relationship\", \"display\": \"Relationship\", \"description\": \"Patient relationship information\", \"status\": \"Active\" },\n { \"value\": \"blood-info\", \"display\": \"Blood Information\", \"description\": \"Patient blood information\", \"status\": \"Active\" },\n { \"value\": \"payer\", \"display\": \"Payer Information\", \"description\": \"Patient payer information\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:payer:category\",\n \"domain\": \"payer\",\n \"variant\": \"category\",\n \"display\": \"Payer Category\",\n \"description\": \"Healthcare payer categories\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"insurance\", \"display\": \"Insurance\", \"description\": \"Third-party health insurance payer\", \"status\": \"Active\" },\n { \"value\": \"government\", \"display\": \"Government\", \"description\": \"Government-sponsored health program\", \"status\": \"Active\" },\n { \"value\": \"corporate\", \"display\": \"Corporate\", \"description\": \"Company-sponsored health benefit\", \"status\": \"Active\" },\n { \"value\": \"self\", \"display\": \"Self\", \"description\": \"Patient pay out of pocket\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:queue:stage\",\n \"domain\": \"queue\",\n \"variant\": \"stage\",\n \"display\": \"Queue Stage\",\n \"description\": \"Queue processing stages\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"waiting\", \"display\": \"Waiting\", \"description\": \"Waiting stage\", \"status\": \"Active\" },\n { \"value\": \"processing\", \"display\": \"Processing\", \"description\": \"Processing stage\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:relationship:family\",\n \"domain\": \"relationship\",\n \"variant\": \"family\",\n \"display\": \"Family Relationship\",\n \"description\": \"Family relationship types\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"spouse\", \"display\": \"Spouse\", \"description\": \"Partner in a marriage or legal union\", \"status\": \"Active\" },\n { \"value\": \"father\", \"display\": \"Father\", \"description\": \"Male parent\", \"status\": \"Active\" },\n { \"value\": \"mother\", \"display\": \"Mother\", \"description\": \"Female parent\", \"status\": \"Active\" },\n { \"value\": \"grandfather\", \"display\": \"Grandfather\", \"description\": \"Father of a person's father or mother\", \"status\": \"Active\" },\n { \"value\": \"grandmother\", \"display\": \"Grandmother\", \"description\": \"Mother of a person's father or mother\", \"status\": \"Active\" },\n { \"value\": \"grandchildren\", \"display\": \"Grandchildren\", \"description\": \"Child or children of a person's son or daughter\", \"status\": \"Active\" },\n { \"value\": \"children\", \"display\": \"Children\", \"description\": \"Person's offspring or child\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:schedule\",\n \"domain\": \"schedule\",\n \"variant\": null,\n \"display\": \"Schedule Type\",\n \"description\": \"Practitioner schedule types\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"recurring\", \"display\": \"Recurring\", \"description\": \"A recurring schedule\", \"status\": \"Active\" },\n { \"value\": \"one-time\", \"display\": \"One-Time\", \"description\": \"A one-time schedule\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:taxonomy:department\",\n \"domain\": \"taxonomy\",\n \"variant\": \"department\",\n \"display\": \"Department\",\n \"description\": \"Department classifications\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"medical\", \"display\": \"Medical\", \"description\": \"Department for medical affair\", \"status\": \"Active\" },\n { \"value\": \"administrative\", \"display\": \"Administrative\", \"description\": \"Department for administrative affair\", \"status\": \"Active\" },\n { \"value\": \"operational\", \"display\": \"Operational\", \"description\": \"Department for operational affair\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:taxonomy:unit\",\n \"domain\": \"taxonomy\",\n \"variant\": \"unit\",\n \"display\": \"Unit Types\",\n \"description\": \"Unit classifications\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"medical-service\", \"display\": \"Medical Service\", \"description\": \"Unit that provide medical service\", \"status\": \"Active\" },\n { \"value\": \"pharmacy\", \"display\": \"Pharmacy\", \"description\": \"Unit for pharmacy\", \"status\": \"Active\" },\n { \"value\": \"ancillary\", \"display\": \"Ancillary\", \"description\": \"Unit for ancillary services\", \"status\": \"Active\" },\n { \"value\": \"service-counter\", \"display\": \"Service Counter\", \"description\": \"Unit that act as counter for various purposes\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:taxonomy:location\",\n \"domain\": \"taxonomy\",\n \"variant\": \"location\",\n \"display\": \"Location Types\",\n \"description\": \"Location classifications\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"building\", \"display\": \"Building\", \"description\": \"A building\", \"status\": \"Active\" },\n { \"value\": \"level\", \"display\": \"Level\", \"description\": \"A floor level\", \"status\": \"Active\" },\n { \"value\": \"bed\", \"display\": \"Bed\", \"description\": \"A bed\", \"status\": \"Active\" },\n { \"value\": \"cabinet\", \"display\": \"Cabinet\", \"description\": \"A cabinet\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:taxonomy:staff\",\n \"domain\": \"taxonomy\",\n \"variant\": \"staff\",\n \"display\": \"Staff Types\",\n \"description\": \"Staff classifications\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"practitioner\", \"display\": \"Practitioner\", \"description\": \"Healthcare practitioner (i.e. Doctor)\", \"status\": \"Active\" },\n { \"value\": \"medical\", \"display\": \"Medical\", \"description\": \"Medical staff (i.e. Nurse, Therapist)\", \"status\": \"Active\" },\n { \"value\": \"non-medical\", \"display\": \"Non Medical\", \"description\": \"Non medical staff (i.e. Administrator staff)\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:assignment:type\",\n \"domain\": \"assignment\",\n \"variant\": \"type\",\n \"display\": \"Assignment Type\",\n \"description\": \"Resource assignment types\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"staff-to-unit\", \"display\": \"Staff to Unit\", \"description\": \"Assignment of staff to a unit\", \"status\": \"Active\" },\n { \"value\": \"location-to-unit\", \"display\": \"Location to Unit\", \"description\": \"Assignment of location to a unit\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:identifier\",\n \"domain\": \"identifier\",\n \"variant\": null,\n \"display\": \"Identifier Types\",\n \"description\": \"Person identifier types\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"nik\", \"display\": \"NIK\", \"description\": \"Nomor Induk Kependudukan\", \"status\": \"Active\" },\n { \"value\": \"mrn\", \"display\": \"MRN\", \"description\": \"Medical Record Number\", \"status\": \"Active\" },\n { \"value\": \"passport\", \"display\": \"Passport Number\", \"description\": \"Passport Number\", \"status\": \"Active\" },\n { \"value\": \"str\", \"display\": \"STR\", \"description\": \"Surat Tanda Registrasi by Konsil Kedokteran Indonesia\", \"status\": \"Active\" },\n { \"value\": \"sip\", \"display\": \"SIP\", \"description\": \"Surat Izin Praktik by Dinas Kesehatan\", \"status\": \"Active\" },\n { \"value\": \"npa\", \"display\": \"NPA\", \"description\": \"Nomor Pokok Anggota by Ikatan Dokter Indonesia\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:contact\",\n \"domain\": \"contact\",\n \"variant\": null,\n \"display\": \"Contact Method\",\n \"description\": \"Method of contacting a person\",\n \"type\": \"label\",\n \"values\": [\n { \"value\": \"mobile\", \"display\": \"Mobile\", \"description\": \"Cellular or mobile phone contact number\", \"status\": \"Active\" },\n { \"value\": \"phone\", \"display\": \"Phone\", \"description\": \"Landline or primary telephone contact number\", \"status\": \"Active\" },\n { \"value\": \"email\", \"display\": \"Email\", \"description\": \"Electronic mail address for digital communication\", \"status\": \"Active\" },\n { \"value\": \"fax\", \"display\": \"Fax\", \"description\": \"Facsimile machine contact number\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:event:system\",\n \"domain\": \"event\",\n \"variant\": \"system\",\n \"display\": \"System Event\",\n \"description\": \"System event types\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"create\", \"display\": \"Create\", \"description\": \"Event triggered when creating a resource\", \"status\": \"Active\" },\n { \"value\": \"update\", \"display\": \"Update\", \"description\": \"Event triggered when updating a resource\", \"status\": \"Active\" },\n { \"value\": \"delete\", \"display\": \"Delete\", \"description\": \"Event triggered when deleting a resource\", \"status\": \"Active\" }\n ]\n },\n {\n \"system\": \"crn:event:queue\",\n \"domain\": \"event\",\n \"variant\": \"queue\",\n \"display\": \"Queue Event\",\n \"description\": \"Queue event types\",\n \"type\": \"parameter\",\n \"values\": [\n { \"value\": \"called\", \"display\": \"Called\", \"description\": \"Event triggered when calling a queue number\", \"status\": \"Active\" },\n { \"value\": \"skipped\", \"display\": \"Skipped\", \"description\": \"Event triggered when skipping a queue number\", \"status\": \"Active\" },\n { \"value\": \"noshow\", \"display\": \"No Show\", \"description\": \"Event triggered when patient fails to show up\", \"status\": \"Active\" },\n { \"value\": \"arrived\", \"display\": \"Arrived\", \"description\": \"Event triggered when patient arrives at the location\", \"status\": \"Active\" }\n ]\n }\n ]\n}\n","import registryData from \"./registry.json\";\nimport type { RegistryData, RegistrySystem, RegistryValue, CodedConcept, CodeOption } from \"./types\";\n\nexport const registry: RegistryData = registryData as RegistryData;\n\n/**\n * Look up a specific code entry by system + value.\n * Returns the RegistryValue or undefined if not found.\n */\nexport function getCode(system: string, value: string): RegistryValue | undefined {\n const sys = registry.systems.find((s) => s.system === system);\n if (!sys) return undefined;\n return sys.values.find((v) => v.value === value);\n}\n\n/**\n * Validate a system/value combination against the registry.\n * - Unknown system → invalid\n * - Parameter system → value must exist in values array\n * - Label system → value must be non-empty string\n */\nexport function validateCode(system: string, value: string): boolean {\n const sys = registry.systems.find((s) => s.system === system);\n if (!sys) return false;\n\n if (sys.type === \"parameter\") {\n return sys.values.some((v) => v.value === value);\n }\n // Label system: any non-empty value is valid\n return value.length > 0;\n}\n\n/**\n * Return all values for a system as select/dropdown options.\n * Only returns Active values.\n */\nexport function getOptions(system: string): CodeOption[] {\n const sys = registry.systems.find((s) => s.system === system);\n if (!sys) return [];\n return sys.values\n .filter((v) => v.status === \"Active\")\n .map((v) => ({ value: v.value, label: v.display }));\n}\n\n/**\n * Get all registered systems.\n */\nexport function getSystems(): RegistrySystem[] {\n return registry.systems;\n}\n\n/**\n * Get the full registry data.\n */\nexport function getRegistry(): RegistryData {\n return registry;\n}\n","import { z } from \"zod\";\nimport { timestampSchema } from \"./timestamp\";\nimport { validateCode } from \"../registry/registry\";\n\nconst isoDatetimeRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})$/;\n\n/**\n * CodedConcept - A data type for coded system values based on a defined code system.\n * Used across CentriCare models for statuses, identifiers, contacts, demographic fields, etc.\n *\n * Accepts only codes and code systems registered in the CentriCare Registry.\n * The system must exist in the registry, and the value must be valid for that system.\n */\nexport const codedConceptSchema = z.object({\n system: z.string().min(1, { message: \"system is required\" }),\n value: z.string().min(1, { message: \"value is required\" }),\n display: z.string().optional(),\n valid: z\n .string()\n .optional()\n .refine(\n (val) => !val || isoDatetimeRegex.test(val),\n { message: \"valid must be a valid ISO 8601 datetime if provided\" }\n ),\n tags: z.array(z.string()).optional(),\n}).refine((data) => validateCode(data.system, data.value), {\n message: \"Invalid CodedConcept: system/value combination not found in registry\",\n});\n\nexport type CodedConcept = z.infer<typeof codedConceptSchema>;\n","import z from \"zod\";\nimport { codedConceptSchema } from \"./coded-concept\";\n\nexport const demographicSchema = z.object({\n sex: codedConceptSchema,\n religion: codedConceptSchema,\n ethnicity: z.string().optional(),\n marital_status: codedConceptSchema,\n date_of_birth: z.string(),\n place_of_birth: z.string().optional(),\n});\n\nexport type Demographic = z.infer<typeof demographicSchema>;\n","import { z } from \"zod\";\nimport { codedConceptSchema } from \"./coded-concept\";\n\nexport const addressSchema = z.object({\n street: z.string().min(1, { message: \"street is required\" }),\n subdistrict: codedConceptSchema,\n district: codedConceptSchema,\n city: codedConceptSchema,\n province: codedConceptSchema,\n postal_code: z.string().optional(),\n});\n\nexport type Address = z.infer<typeof addressSchema>;","import { z } from \"zod\";\n\n/**\n * ObjectId schema for MongoDB document IDs.\n * Validates a 24-character hexadecimal string (MongoDB ObjectId format).\n */\nexport const objectIdSchema = z.string().length(24, {\n message: \"ObjectId must be a 24-character hexadecimal string\",\n}).regex(/^[0-9a-fA-F]{24}$/, {\n message: \"ObjectId must be a valid MongoDB ObjectId (24-character hex string)\",\n});\n\nexport type ObjectId = string;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport {\n codedConceptSchema,\n type CodedConcept,\n} from \"../../commons/coded-concept\";\nimport { demographicSchema } from \"../../commons/demographic\";\nimport { timestampSchema } from \"../../commons/timestamp\";\nimport {\n settingOptionSchema,\n type SettingOption,\n} from \"../../commons/setting-option\";\n\n/**\n * Current schema version for the User model.\n *\n * The persisted record does not include a schema_version field; this constant\n * tracks the shape consumers are validating against.\n */\nexport const USER_SCHEMA_VERSION = 1;\n\n/**\n * Full user record schema.\n *\n * Based on /Docs/Data/Data+Model/User\n * Auto-generated fields: id, created_at, updated_at (by Better Auth)\n */\nexport const userSchema = z.object({\n id: z.string(),\n full_name: z.string().min(1, { message: \"full_name is required\" }),\n first_name: z.string().min(1, { message: \"first_name is required\" }),\n middle_name: z.string().optional(),\n last_name: z.string().min(1, { message: \"last_name is required\" }),\n salutation: z.string().optional(),\n title: z.string().optional(),\n email: z.string().email({ message: \"Invalid email address\" }),\n email_verified: z.boolean(),\n image: z.string().optional(),\n statuses: z.array(codedConceptSchema).nonempty({\n message: \"statuses must contain at least one CodedConcept\",\n }),\n identifiers: z.array(codedConceptSchema).nonempty({\n message: \"identifiers must contain at least one CodedConcept\",\n }),\n demographic: demographicSchema,\n contacts: z.array(codedConceptSchema).optional(),\n settings_id: objectIdSchema,\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport type User = z.infer<typeof userSchema>;\n\nexport const UserMongooseSchema: MongooseSchema = toMongooseSchema(userSchema);\nexport type UserDocument = InferDocument<typeof userSchema>;\n\nconst UserModelName = \"users\";\nexport const UserModel = model(UserModelName, UserMongooseSchema);\n","import { z } from \"zod\";\nimport {\n objectIdSchema,\n settingOptionSchema,\n timestampSchema,\n} from \"../../commons\";\n\nconst USER_SETTING_FIELDS = [\n \"lock_screen\",\n \"lock_screen_pin\",\n \"language\",\n];\n\n/**\n * Current schema version for the User settings record.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const USER_SETTINGS_SCHEMA_VERSION = 1;\n\nexport const userSettingsSchema = z.object({\n _id: objectIdSchema,\n scope: z.string().min(1),\n options: z.array(\n settingOptionSchema.refine(\n (opt) => USER_SETTING_FIELDS.includes(opt.field),\n { message: \"Invalid field for user settings\" },\n ),\n ),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(USER_SETTINGS_SCHEMA_VERSION),\n});\n\nexport const userSettingsKVSchema = z.object({\n lock_screen: z.boolean().default(false),\n lock_screen_pin: z.string().optional(),\n language: z.string().default(\"id-ID\"),\n});\n\nexport type UserSettings = z.infer<typeof userSettingsSchema>;\nexport type UserSettingsKV = z.infer<typeof userSettingsKVSchema>;\n","import { z } from \"zod\";\nimport { userSchema, type User } from \"./user.schema\";\n\n/**\n * Minimal user schema (omits server-generated fields).\n */\nexport const userMinimalSchema = userSchema.omit({\n id: true,\n created_at: true,\n updated_at: true,\n});\n\nexport type UserMinimal = z.infer<typeof userMinimalSchema>;\n","import { z } from \"zod\";\nimport { userMinimalSchema, type UserMinimal } from \"./user-minimal.schema\";\n\n/**\n * Partial user schema (based on minimal, all fields optional).\n */\nexport const userPartialSchema = userMinimalSchema.partial();\n\nexport type UserPartial = z.infer<typeof userPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { codedConceptSchema } from \"../../commons/coded-concept\";\n\nconst nonEmpty = z.string().min(1, { message: \"assigned_to is required\" });\n\n/**\n * Current schema version for the Assignment model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const ASSIGNMENT_SCHEMA_VERSION = 1;\n\nexport const assignmentSchema = z.object({\n _id: objectIdSchema,\n facility_id: objectIdSchema,\n type: codedConceptSchema,\n for: z.string().min(1, { message: \"for is required\" }),\n assigned_to: z\n .union([nonEmpty, z.array(nonEmpty)])\n .transform((val) => (Array.isArray(val) ? val : [val]))\n .refine((arr) => arr.length >= 1, {\n message: \"assigned_to is required\",\n }),\n created_at: z.string(),\n created_by: z.string(),\n updated_at: z.string(),\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(ASSIGNMENT_SCHEMA_VERSION),\n});\n\nexport type Assignment = z.infer<typeof assignmentSchema>;\n\nexport const AssignmentMongooseSchema: MongooseSchema = toMongooseSchema(assignmentSchema);\nexport type AssignmentDocument = InferDocument<typeof assignmentSchema>;\n\nconst AssignmentModelName = \"assignments\";\nexport const AssignmentModel = model(AssignmentModelName, AssignmentMongooseSchema);\n","import { z } from \"zod\";\nimport { assignmentSchema, type Assignment } from \"./assignment.schema\";\n\n/**\n * Minimal assignment schema (omits server-generated fields).\n */\nexport const assignmentMinimalSchema = assignmentSchema.omit({\n _id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type AssignmentMinimal = z.infer<typeof assignmentMinimalSchema>;\n","import { z } from \"zod\";\nimport { assignmentMinimalSchema, type AssignmentMinimal } from \"./assignment-minimal.schema\";\n\n/**\n * Partial assignment schema (based on minimal, all fields optional).\n */\nexport const assignmentPartialSchema = assignmentMinimalSchema.partial();\n\nexport type AssignmentPartial = z.infer<typeof assignmentPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { codedConceptSchema } from \"../../commons/coded-concept\";\n\n/**\n * Current schema version for the Department model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const DEPARTMENT_SCHEMA_VERSION = 1;\n\nexport const departmentSchema = z.object({\n _id: objectIdSchema,\n facility_id: objectIdSchema,\n name: z.string().min(1, { message: \"name is required\" }),\n type: codedConceptSchema,\n created_at: z.string(),\n created_by: z.string(),\n updated_at: z.string(),\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(DEPARTMENT_SCHEMA_VERSION),\n});\n\nexport type Department = z.infer<typeof departmentSchema>;\n\nexport const DepartmentMongooseSchema: MongooseSchema = toMongooseSchema(departmentSchema);\nexport type DepartmentDocument = InferDocument<typeof departmentSchema>;\n\nconst DepartmentModelName = \"departments\";\nexport const DepartmentModel = model(DepartmentModelName, DepartmentMongooseSchema);\n","import { z } from \"zod\";\nimport { departmentSchema, type Department } from \"./department.schema\";\n\n/**\n * Minimal department schema (omits server-generated fields).\n */\nexport const departmentMinimalSchema = departmentSchema.omit({\n _id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type DepartmentMinimal = z.infer<typeof departmentMinimalSchema>;\n","import { z } from \"zod\";\nimport { departmentMinimalSchema, type DepartmentMinimal } from \"./department-minimal.schema\";\n\n/**\n * Partial department schema (based on minimal, all fields optional).\n */\nexport const departmentPartialSchema = departmentMinimalSchema.partial();\n\nexport type DepartmentPartial = z.infer<typeof departmentPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\nimport {\n settingOptionSchema,\n type SettingOption,\n} from \"../../commons/setting-option\";\n\n/**\n * Current schema version for the Facility model.\n *\n * The persisted record does not include a schema_version field; this constant\n * tracks the shape consumers are validating against.\n */\nexport const FACILITY_SCHEMA_VERSION = 1;\n\nexport const facilitySchema = z.object({\n id: z.string().uuid({ message: \"id must be a valid UUID\" }),\n name: z.string().min(1, { message: \"name is required\" }),\n member_count: z\n .number()\n .int()\n .positive({ message: \"member_count must be a positive integer\" }),\n organization_id: objectIdSchema,\n status: codedConceptSchema,\n settings_id: objectIdSchema,\n createdAt: timestampSchema,\n updatedAt: timestampSchema,\n});\n\nexport type Facility = z.infer<typeof facilitySchema>;\n\nexport const FacilityMongooseSchema: MongooseSchema = toMongooseSchema(facilitySchema);\nexport type FacilityDocument = InferDocument<typeof facilitySchema>;\n\nconst FacilityModelName = \"facilities\";\nexport const FacilityModel = model(FacilityModelName, FacilityMongooseSchema);\n","import { z } from \"zod\";\nimport {\n objectIdSchema,\n settingOptionSchema,\n timestampSchema,\n} from \"../../commons\";\n\nconst FACILITY_SETTING_FIELDS = [\n \"branding_logo\",\n \"satusehat_org_id\",\n \"satusehat_client_id\",\n \"satusehat_client_secret\",\n \"queue_number_separator\",\n \"queue_number_prefix\",\n \"queue_no_response_count\",\n \"queue_skip_no_response\",\n];\n\n/**\n * Current schema version for the Facility settings record.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const FACILITY_SETTINGS_SCHEMA_VERSION = 1;\n\nexport const facilitySettingsSchema = z.object({\n _id: objectIdSchema,\n scope: z.string().min(1),\n options: z.array(\n settingOptionSchema.refine(\n (opt) => FACILITY_SETTING_FIELDS.includes(opt.field),\n { message: \"Invalid field for facility settings\" },\n ),\n ),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(FACILITY_SETTINGS_SCHEMA_VERSION),\n});\n\nexport const facilitySettingsKVSchema = z.object({\n branding_logo: z.string().optional(),\n satusehat_org_id: z.string().optional(),\n satusehat_client_id: z.string().optional(),\n satusehat_client_secret: z.string().optional(),\n queue_number_separator: z.string().optional(),\n queue_number_prefix: z.enum([\"none\", \"payer\"]).default(\"payer\"),\n queue_no_response_count: z.number().default(3),\n queue_skip_no_response: z.boolean().default(true),\n});\n\nexport type FacilitySettings = z.infer<typeof facilitySettingsSchema>;\nexport type FacilitySettingsKV = z.infer<typeof facilitySettingsKVSchema>;\n","import { z } from \"zod\";\nimport { facilitySchema, type Facility } from \"./facility.schema\";\n\n/**\n * Minimal facility schema (omits server-generated fields).\n */\nexport const facilityMinimalSchema = facilitySchema.omit({\n id: true,\n createdAt: true,\n updatedAt: true,\n});\n\nexport type FacilityMinimal = z.infer<typeof facilityMinimalSchema>;\n","import { z } from \"zod\";\nimport { facilityMinimalSchema, type FacilityMinimal } from \"./facility-minimal.schema\";\n\n/**\n * Partial facility schema (based on minimal, all fields optional).\n */\nexport const facilityPartialSchema = facilityMinimalSchema.partial();\n\nexport type FacilityPartial = z.infer<typeof facilityPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\n/**\n * Current schema version for the Location model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const LOCATION_SCHEMA_VERSION = 1;\n\nexport const locationSchema = z.object({\n _id: objectIdSchema,\n parent_id: objectIdSchema,\n identifiers: z.array(codedConceptSchema).nonempty({\n message: \"identifiers must contain at least one CodedConcept\",\n }),\n name: z.string().min(1, { message: \"name is required\" }),\n types: z.array(codedConceptSchema).nonempty({\n message: \"types must contain at least one CodedConcept\",\n }),\n statuses: z.array(codedConceptSchema).nonempty({\n message: \"statuses must contain at least one CodedConcept\",\n }),\n settings_id: objectIdSchema,\n created_at: timestampSchema,\n created_by: z.string(),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(LOCATION_SCHEMA_VERSION),\n});\n\nexport type Location = z.infer<typeof locationSchema>;\n\nexport const LocationMongooseSchema: MongooseSchema = toMongooseSchema(locationSchema);\nexport type LocationDocument = InferDocument<typeof locationSchema>;\n\nconst LocationModelName = \"locations\";\nexport const LocationModel = model(LocationModelName, LocationMongooseSchema);\n","import { z } from \"zod\";\nimport {\n objectIdSchema,\n settingOptionSchema,\n timestampSchema,\n} from \"../../commons\";\n\nconst LOCATION_SETTING_FIELDS = [\n \"sex_restriction\",\n \"is_inventory_location\",\n \"room_has_ventilator\",\n];\n\n/**\n * Current schema version for the Location settings record.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const LOCATION_SETTINGS_SCHEMA_VERSION = 1;\n\nexport const locationSettingsSchema = z.object({\n _id: objectIdSchema,\n scope: z.string().min(1),\n options: z.array(\n settingOptionSchema.refine(\n (opt) => LOCATION_SETTING_FIELDS.includes(opt.field),\n { message: \"Invalid field for location settings\" },\n ),\n ),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(LOCATION_SETTINGS_SCHEMA_VERSION),\n});\n\nexport const locationSettingsKVSchema = z.object({\n sex_restriction: z.string().optional(),\n is_inventory_location: z.boolean().default(false),\n room_has_ventilator: z.boolean().default(false),\n});\n\nexport type LocationSettings = z.infer<typeof locationSettingsSchema>;\nexport type LocationSettingsKV = z.infer<typeof locationSettingsKVSchema>;\n","import { z } from \"zod\";\nimport { locationSchema, type Location } from \"./location.schema\";\n\n/**\n * Minimal location schema (omits server-generated fields).\n */\nexport const locationMinimalSchema = locationSchema.omit({\n _id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n});\n\nexport type LocationMinimal = z.infer<typeof locationMinimalSchema>;\n","import { z } from \"zod\";\nimport { locationMinimalSchema, type LocationMinimal } from \"./location-minimal.schema\";\n\n/**\n * Partial location schema (based on minimal, all fields optional).\n */\nexport const locationPartialSchema = locationMinimalSchema.partial();\n\nexport type LocationPartial = z.infer<typeof locationPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\n/**\n * Current schema version for the Member model.\n *\n * The persisted record does not include a schema_version field; this constant\n * tracks the shape consumers are validating against.\n */\nexport const MEMBER_SCHEMA_VERSION = 1;\n\nexport const memberSchema = z.object({\n id: z.string().uuid({ message: \"id must be a valid UUID\" }),\n user_id: objectIdSchema,\n organization_id: objectIdSchema,\n role: z.string().min(1, { message: \"role is required\" }),\n created_at: timestampSchema,\n});\n\nexport type Member = z.infer<typeof memberSchema>;\n\nexport const MemberMongooseSchema: MongooseSchema = toMongooseSchema(memberSchema);\nexport type MemberDocument = InferDocument<typeof memberSchema>;\n\nconst MemberModelName = \"members\";\nexport const MemberModel = model(MemberModelName, MemberMongooseSchema);\n","import { z } from \"zod\";\nimport { memberSchema, type Member } from \"./member.schema\";\n\n/**\n * Minimal member schema (omits server-generated fields).\n */\nexport const memberMinimalSchema = memberSchema.omit({\n id: true,\n created_at: true,\n});\n\nexport type MemberMinimal = z.infer<typeof memberMinimalSchema>;\n","import { z } from \"zod\";\nimport { memberMinimalSchema, type MemberMinimal } from \"./member-minimal.schema\";\n\n/**\n * Partial member schema (based on minimal, all fields optional).\n */\nexport const memberPartialSchema = memberMinimalSchema.partial();\n\nexport type MemberPartial = z.infer<typeof memberPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\nimport {\n settingOptionSchema,\n type SettingOption,\n} from \"../../commons/setting-option\";\n\n/**\n * Current schema version for the Organization model.\n *\n * The persisted record does not include a schema_version field; this constant\n * tracks the shape consumers are validating against.\n */\nexport const ORGANIZATION_SCHEMA_VERSION = 1;\n\nexport const organizationSchema = z.object({\n id: z.string().uuid({ message: \"id must be a valid UUID\" }),\n name: z.string().min(1, { message: \"name is required\" }),\n slug: z.string().min(1, { message: \"slug is required\" }),\n logo: z.string().optional(),\n status: codedConceptSchema,\n metadata: z\n .object({\n description: z.string().optional(),\n })\n .optional(),\n settings_id: objectIdSchema,\n created_at: timestampSchema,\n});\n\nexport type Organization = z.infer<typeof organizationSchema>;\n\nexport const OrganizationMongooseSchema: MongooseSchema = toMongooseSchema(organizationSchema);\nexport type OrganizationDocument = InferDocument<typeof organizationSchema>;\n\nconst OrganizationModelName = \"organizations\";\nexport const OrganizationModel = model(OrganizationModelName, OrganizationMongooseSchema);\n","import { z } from \"zod\";\nimport {\n objectIdSchema,\n settingOptionSchema,\n timestampSchema,\n} from \"../../commons\";\n\nconst ORGANIZATION_SETTING_FIELDS = [\n \"patient_mrn_length\",\n \"patient_mrn_separator\",\n \"member_invite_duration\",\n];\n\n/**\n * Current schema version for the Organization settings record.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const ORGANIZATION_SETTINGS_SCHEMA_VERSION = 1;\n\nexport const organizationSettingsSchema = z.object({\n _id: objectIdSchema,\n scope: z.string().min(1),\n options: z.array(\n settingOptionSchema.refine(\n (opt) => ORGANIZATION_SETTING_FIELDS.includes(opt.field),\n { message: \"Invalid field for organization settings\" },\n ),\n ),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(ORGANIZATION_SETTINGS_SCHEMA_VERSION),\n});\n\nexport const organizationSettingsKVSchema = z.object({\n patient_mrn_length: z.number().default(6),\n patient_mrn_separator: z.string().default(\"crn:mrn:separator:dash\"),\n member_invite_duration: z.number().default(7),\n});\n\nexport type OrganizationSettings = z.infer<typeof organizationSettingsSchema>;\nexport type OrganizationSettingsKV = z.infer<typeof organizationSettingsKVSchema>;\n","import { z } from \"zod\";\nimport { organizationSchema, type Organization } from \"./organization.schema\";\n\n/**\n * Minimal organization schema (omits server-generated fields).\n */\nexport const organizationMinimalSchema = organizationSchema.omit({\n id: true,\n created_at: true,\n});\n\nexport type OrganizationMinimal = z.infer<typeof organizationMinimalSchema>;\n","import { z } from \"zod\";\nimport { organizationMinimalSchema, type OrganizationMinimal } from \"./organization-minimal.schema\";\n\n/**\n * Partial organization schema (based on minimal, all fields optional).\n */\nexport const organizationPartialSchema = organizationMinimalSchema.partial();\n\nexport type OrganizationPartial = z.infer<typeof organizationPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { demographicSchema } from \"../../commons/demographic\";\nimport { timestampSchema } from \"../../commons/timestamp\";\nimport { addressSchema } from \"../../commons/address\";\n\n/**\n * Current schema version for the Patient model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const PATIENT_SCHEMA_VERSION = 1;\n\nexport const patientSchema = z.object({\n _id: objectIdSchema,\n organization_id: objectIdSchema,\n registering_facility_id: objectIdSchema,\n identifiers: z.array(codedConceptSchema),\n salutation: z.string().min(1, { message: \"salutation is required\" }),\n first_name: z.string().min(1, { message: \"first_name is required\" }),\n middle_name: z.string().optional(),\n last_name: z.string().min(1, { message: \"last_name is required\" }),\n title: z.string().optional(),\n image: z.string().optional(),\n demographic: demographicSchema,\n statuses: z.array(codedConceptSchema).nonempty({\n message: \"statuses must contain at least one CodedConcept\",\n }),\n contacts: z.array(codedConceptSchema).optional(),\n address: addressSchema,\n created_at: timestampSchema,\n created_by: z.string(),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(PATIENT_SCHEMA_VERSION),\n});\n\nexport type Patient = z.infer<typeof patientSchema>;\n\nexport const PatientMongooseSchema: MongooseSchema = toMongooseSchema(patientSchema);\nexport type PatientDocument = InferDocument<typeof patientSchema>;\n\nconst PatientModelName = \"patients\";\nexport const PatientModel = model(PatientModelName, PatientMongooseSchema);\n","import { z } from \"zod\";\nimport { patientSchema, type Patient } from \"./patient.schema\";\n\n/**\n * Minimal patient schema (omits server-generated fields).\n */\nexport const patientMinimalSchema = patientSchema.omit({\n _id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type PatientMinimal = z.infer<typeof patientMinimalSchema>;\n","import { z } from \"zod\";\nimport { patientMinimalSchema, type PatientMinimal } from \"./patient-minimal.schema\";\n\n/**\n * Partial patient schema (based on minimal, all fields optional).\n */\nexport const patientPartialSchema = patientMinimalSchema.partial();\n\nexport type PatientPartial = z.infer<typeof patientPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\n/**\n * Current schema version for the Patient Additional model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const PATIENT_ADDITIONAL_SCHEMA_VERSION = 1;\n\nexport const patientAdditionalSchema = z.object({\n id: z.string().uuid({ message: \"id must be a valid UUID\" }),\n patient_id: objectIdSchema,\n type: codedConceptSchema,\n data: z.union([z.object({}), z.array(z.any())]),\n created_at: timestampSchema,\n created_by: z.string(),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(PATIENT_ADDITIONAL_SCHEMA_VERSION),\n});\n\nexport type PatientAdditional = z.infer<typeof patientAdditionalSchema>;\n\nexport const PatientAdditionalMongooseSchema: MongooseSchema = toMongooseSchema(patientAdditionalSchema);\nexport type PatientAdditionalDocument = InferDocument<typeof patientAdditionalSchema>;\n\nconst PatientAdditionalModelName = \"patient_additionals\";\nexport const PatientAdditionalModel = model(PatientAdditionalModelName, PatientAdditionalMongooseSchema);\n","import { z } from \"zod\";\nimport { patientAdditionalSchema, type PatientAdditional } from \"./patient-additional.schema\";\n\n/**\n * Minimal patient-additional schema (omits server-generated fields).\n */\nexport const patientAdditionalMinimalSchema = patientAdditionalSchema.omit({\n id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type PatientAdditionalMinimal = z.infer<typeof patientAdditionalMinimalSchema>;\n","import { z } from \"zod\";\nimport { patientAdditionalMinimalSchema, type PatientAdditionalMinimal } from \"./patient-additional-minimal.schema\";\n\n/**\n * Partial patient-additional schema (based on minimal, all fields optional).\n */\nexport const patientAdditionalPartialSchema = patientAdditionalMinimalSchema.partial();\n\nexport type PatientAdditionalPartial = z.infer<typeof patientAdditionalPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\n/**\n * Current schema version for the Staff model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const STAFF_SCHEMA_VERSION = 1;\n\nexport const staffSchema = z.object({\n id: z.string().uuid({ message: \"id must be a valid UUID\" }),\n team_id: objectIdSchema,\n user_id: objectIdSchema,\n type: codedConceptSchema,\n status: codedConceptSchema,\n membership_key: z.string().optional(),\n group: z.string().optional(),\n subspecialist: z.string().optional(),\n created_at: timestampSchema,\n created_by: z.string(),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(STAFF_SCHEMA_VERSION),\n});\n\nexport type Staff = z.infer<typeof staffSchema>;\n\nexport const StaffMongooseSchema: MongooseSchema = toMongooseSchema(staffSchema);\nexport type StaffDocument = InferDocument<typeof staffSchema>;\n\nconst StaffModelName = \"staffs\";\nexport const StaffModel = model(StaffModelName, StaffMongooseSchema);\n","import { z } from \"zod\";\nimport { staffSchema, type Staff } from \"./staff.schema\";\n\n/**\n * Minimal staff schema (omits server-generated fields).\n */\nexport const staffMinimalSchema = staffSchema.omit({\n id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type StaffMinimal = z.infer<typeof staffMinimalSchema>;\n","import { z } from \"zod\";\nimport { staffMinimalSchema, type StaffMinimal } from \"./staff-minimal.schema\";\n\n/**\n * Partial staff schema (based on minimal, all fields optional).\n */\nexport const staffPartialSchema = staffMinimalSchema.partial();\n\nexport type StaffPartial = z.infer<typeof staffPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\n/**\n * Current schema version for the Unit model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const UNIT_SCHEMA_VERSION = 1;\n\nexport const unitSchema = z.object({\n _id: objectIdSchema,\n facility_id: objectIdSchema,\n department_id: objectIdSchema,\n name: z.string().min(1, { message: \"name is required\" }),\n code: z.string().min(1, { message: \"code is required\" }),\n type: codedConceptSchema,\n statuses: z.array(codedConceptSchema).nonempty({\n message: \"statuses must contain at least one CodedConcept\",\n }),\n settings_id: objectIdSchema,\n created_at: timestampSchema,\n created_by: z.string(),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(UNIT_SCHEMA_VERSION),\n});\n\nexport type Unit = z.infer<typeof unitSchema>;\n\nexport const UnitMongooseSchema: MongooseSchema = toMongooseSchema(unitSchema);\nexport type UnitDocument = InferDocument<typeof unitSchema>;\n\nconst UnitModelName = \"units\";\nexport const UnitModel = model(UnitModelName, UnitMongooseSchema);\n","import { z } from \"zod\";\nimport { unitSchema, type Unit } from \"./unit.schema\";\n\n/**\n * Minimal unit schema (omits server-generated fields).\n */\nexport const unitMinimalSchema = unitSchema.omit({\n _id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type UnitMinimal = z.infer<typeof unitMinimalSchema>;\n","import { z } from \"zod\";\nimport { unitMinimalSchema, type UnitMinimal } from \"./unit-minimal.schema\";\n\n/**\n * Partial unit schema (based on minimal, all fields optional).\n */\nexport const unitPartialSchema = unitMinimalSchema.partial();\n\nexport type UnitPartial = z.infer<typeof unitPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\n/**\n * Current schema version for the Practitioner Schedule model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const PRACTITIONER_SCHEDULE_SCHEMA_VERSION = 1;\n\nexport const practitionerScheduleSchema = z.object({\n organization_id: objectIdSchema,\n facility_id: objectIdSchema,\n staff_id: objectIdSchema,\n unit_id: objectIdSchema,\n type: codedConceptSchema,\n day: z\n .union([z.number(), z.string()])\n .refine((val) => val != null, { message: \"day is required\" }),\n _id: objectIdSchema,\n created_at: timestampSchema.optional(),\n created_by: z.string().optional(),\n updated_at: timestampSchema.optional(),\n updated_by: z.string().optional(),\n schema_version: z.number().int().positive().default(PRACTITIONER_SCHEDULE_SCHEMA_VERSION),\n});\n\nexport type PractitionerSchedule = z.infer<typeof practitionerScheduleSchema>;\n\nexport const PractitionerScheduleMongooseSchema: MongooseSchema = toMongooseSchema(practitionerScheduleSchema);\nexport type PractitionerScheduleDocument = InferDocument<typeof practitionerScheduleSchema>;\n\nconst PractitionerScheduleModelName = \"practitioner_schedules\";\nexport const PractitionerScheduleModel = model(PractitionerScheduleModelName, PractitionerScheduleMongooseSchema);\n","import { z } from \"zod\";\nimport { practitionerScheduleSchema, type PractitionerSchedule } from \"./practitioner-schedule.schema\";\n\n/**\n * Minimal practitioner-schedule schema (omits server-generated fields).\n */\nexport const practitionerScheduleMinimalSchema = practitionerScheduleSchema.omit({\n _id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type PractitionerScheduleMinimal = z.infer<typeof practitionerScheduleMinimalSchema>;\n","import { z } from \"zod\";\nimport { practitionerScheduleMinimalSchema, type PractitionerScheduleMinimal } from \"./practitioner-schedule-minimal.schema\";\n\n/**\n * Partial practitioner-schedule schema (based on minimal, all fields optional).\n */\nexport const practitionerSchedulePartialSchema = practitionerScheduleMinimalSchema.partial();\n\nexport type PractitionerSchedulePartial = z.infer<typeof practitionerSchedulePartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\n/**\n * Current schema version for the Practitioner Session model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const PRACTITIONER_SESSION_SCHEMA_VERSION = 1;\n\nexport const practitionerSessionSchema = z.object({\n schedule_id: objectIdSchema,\n staff_id: objectIdSchema,\n unit_id: objectIdSchema,\n start: z.string().min(1, { message: \"start is required\" }),\n end: z.string().min(1, { message: \"end is required\" }),\n max_quota: z\n .number()\n .int()\n .positive({ message: \"max_quota must be a positive integer\" }),\n _id: objectIdSchema,\n created_at: timestampSchema.optional(),\n created_by: z.string().optional(),\n updated_at: timestampSchema.optional(),\n updated_by: z.string().optional(),\n schema_version: z.number().int().positive().default(PRACTITIONER_SESSION_SCHEMA_VERSION),\n});\n\nexport type PractitionerSession = z.infer<typeof practitionerSessionSchema>;\n\nexport const PractitionerSessionMongooseSchema: MongooseSchema = toMongooseSchema(practitionerSessionSchema);\nexport type PractitionerSessionDocument = InferDocument<typeof practitionerSessionSchema>;\n\nconst PractitionerSessionModelName = \"practitioner_sessions\";\nexport const PractitionerSessionModel = model(PractitionerSessionModelName, PractitionerSessionMongooseSchema);\n","import { z } from \"zod\";\nimport { practitionerSessionSchema, type PractitionerSession } from \"./practitioner-session.schema\";\n\n/**\n * Minimal practitioner-session schema (omits server-generated fields).\n */\nexport const practitionerSessionMinimalSchema = practitionerSessionSchema.omit({\n _id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type PractitionerSessionMinimal = z.infer<typeof practitionerSessionMinimalSchema>;\n","import { z } from \"zod\";\nimport { practitionerSessionMinimalSchema, type PractitionerSessionMinimal } from \"./practitioner-session-minimal.schema\";\n\n/**\n * Partial practitioner-session schema (based on minimal, all fields optional).\n */\nexport const practitionerSessionPartialSchema = practitionerSessionMinimalSchema.partial();\n\nexport type PractitionerSessionPartial = z.infer<typeof practitionerSessionPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\n/**\n * Current schema version for the KSM model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const KSM_SCHEMA_VERSION = 1;\n\nexport const ksmSchema = z.object({\n id: z.string().uuid({ message: \"id must be a valid UUID\" }),\n organization_id: objectIdSchema,\n facility_id: objectIdSchema,\n name: z.string().min(1, { message: \"name is required\" }),\n subspecialist: z\n .array(z.string())\n .min(1, { message: \"subspecialist is required\" }),\n created_at: timestampSchema,\n created_by: z.string().min(1, { message: \"created_by is required\" }),\n updated_at: timestampSchema.nullable(),\n updated_by: z.string().nullable(),\n schema_version: z.number().int().positive().default(KSM_SCHEMA_VERSION),\n});\n\nexport type Ksm = z.infer<typeof ksmSchema>;\n\nexport const KsmMongooseSchema: MongooseSchema = toMongooseSchema(ksmSchema);\nexport type KsmDocument = InferDocument<typeof ksmSchema>;\n\nconst KsmModelName = \"medical_staff_groups\";\nexport const KsmModel = model(KsmModelName, KsmMongooseSchema);\n","import { z } from \"zod\";\nimport { ksmSchema, type Ksm } from \"./ksm.schema\";\n\n/**\n * Minimal ksm schema (omits server-generated fields).\n */\nexport const ksmMinimalSchema = ksmSchema.omit({\n id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type KsmMinimal = z.infer<typeof ksmMinimalSchema>;\n","import { z } from \"zod\";\nimport { ksmMinimalSchema, type KsmMinimal } from \"./ksm-minimal.schema\";\n\n/**\n * Partial ksm schema (based on minimal, all fields optional).\n */\nexport const ksmPartialSchema = ksmMinimalSchema.partial();\n\nexport type KsmPartial = z.infer<typeof ksmPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\nimport { settingOptionSchema, type SettingOption } from \"../../commons/setting-option\";\n\nconst isoDatetimeRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})$/;\n\n/**\n * Current schema version for the Payer model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const PAYER_SCHEMA_VERSION = 1;\n\nexport const payerSchema = z.object({\n id: z.string().uuid({ message: \"id must be a valid UUID\" }),\n organization_id: objectIdSchema,\n facility_id: objectIdSchema,\n code: z.string().min(1, { message: \"code is required\" }),\n name: z.string().min(1, { message: \"name is required\" }),\n category: codedConceptSchema,\n type: z.string().min(1, { message: \"type is required\" }),\n contacts: z.array(codedConceptSchema),\n statuses: z.array(codedConceptSchema),\n banks: z.array(\n z.object({\n name: z.string().min(1, { message: \"bank name is required\" }),\n account: z.string().min(1, { message: \"bank account is required\" }),\n number: z.string().min(1, { message: \"bank number is required\" }),\n })\n ),\n variations: z.array(\n z.object({\n code: z.string().min(1, { message: \"variation code is required\" }),\n name: z.string().min(1, { message: \"variation name is required\" }),\n description: z.string().optional(),\n start: z.string().refine((val) => isoDatetimeRegex.test(val), { message: \"variation start must be a valid ISO 8601 datetime\" }),\n end: z.string().optional().refine((val) => !val || isoDatetimeRegex.test(val), { message: \"variation end must be a valid ISO 8601 datetime\" }),\n contacts: z.array(codedConceptSchema).optional(),\n documents: z.array(z.string()).optional(),\n statuses: z.array(codedConceptSchema),\n banks: z.array(\n z.object({\n name: z.string().min(1, { message: \"bank name is required\" }),\n account: z.string().min(1, { message: \"bank account is required\" }),\n number: z.string().min(1, { message: \"bank number is required\" }),\n })\n ),\n settings_id: objectIdSchema,\n })\n ),\n created_at: timestampSchema,\n created_by: z.string().min(1, { message: \"created_by is required\" }),\n updated_at: timestampSchema,\n updated_by: z.string().min(1, { message: \"updated_by is required\" }),\n schema_version: z.number().int().positive().default(PAYER_SCHEMA_VERSION),\n});\n\nexport type Payer = z.infer<typeof payerSchema>;\n\nexport const PayerMongooseSchema: MongooseSchema = toMongooseSchema(payerSchema);\nexport type PayerDocument = InferDocument<typeof payerSchema>;\n\nconst PayerModelName = \"payers\";\nexport const PayerModel = model(PayerModelName, PayerMongooseSchema);\n","import { z } from \"zod\";\nimport {\n objectIdSchema,\n settingOptionSchema,\n timestampSchema,\n} from \"../../commons\";\n\nconst PAYER_SETTING_FIELDS = [\n \"use_header_contact_info\",\n \"use_header_bank_info\",\n \"use_header_status_info\",\n \"rules_drug_formulary\",\n \"rules_method\",\n \"rules_global_cover_outpatient\",\n \"rules_global_cover_emergency\",\n \"rules_global_tariff_calculation_date\",\n \"rules_global_margin_id\",\n \"rules_global_rule_type\",\n \"rules_admin_calculate\",\n \"rules_admin_min_fee\",\n \"rules_admin_max_fee\",\n \"rules_admin_before_discount\",\n \"rules_admin_covered\",\n \"rules_item_restriction_id\",\n];\n\n/**\n * Current schema version for the Payer settings record.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const PAYER_SETTINGS_SCHEMA_VERSION = 1;\n\nexport const payerSettingsSchema = z.object({\n _id: objectIdSchema,\n scope: z.string().min(1),\n options: z.array(\n settingOptionSchema.refine(\n (opt) => PAYER_SETTING_FIELDS.includes(opt.field),\n { message: \"Invalid field for payer settings\" },\n ),\n ),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(PAYER_SETTINGS_SCHEMA_VERSION),\n});\n\nexport const payerSettingsKVSchema = z.object({\n use_header_contact_info: z.boolean().default(false),\n use_header_bank_info: z.boolean().default(false),\n use_header_status_info: z.boolean().default(true),\n rules_drug_formulary: z.string().optional(),\n rules_method: z.string().optional(),\n rules_global_cover_outpatient: z.boolean().default(true),\n rules_global_cover_emergency: z.boolean().default(true),\n rules_global_tariff_calculation_date: z\n .enum([\"transaction-date\", \"billing-date\"])\n .default(\"transaction-date\"),\n rules_global_margin_id: z.string().optional(),\n rules_global_rule_type: z.enum([\"margin\", \"plafond\"]).default(\"margin\"),\n rules_admin_calculate: z.boolean().default(false),\n rules_admin_min_fee: z.number().default(0),\n rules_admin_max_fee: z.number().default(0),\n rules_admin_before_discount: z.boolean().default(false),\n rules_admin_covered: z.boolean().default(true),\n rules_item_restriction_id: z.string().optional(),\n});\n\nexport type PayerSettings = z.infer<typeof payerSettingsSchema>;\nexport type PayerSettingsKV = z.infer<typeof payerSettingsKVSchema>;\n","import { z } from \"zod\";\nimport { payerSchema, type Payer } from \"./payer.schema\";\n\n/**\n * Minimal payer schema (omits server-generated fields).\n */\nexport const payerMinimalSchema = payerSchema.omit({\n id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type PayerMinimal = z.infer<typeof payerMinimalSchema>;\n","import { z } from \"zod\";\nimport { payerMinimalSchema, type PayerMinimal } from \"./payer-minimal.schema\";\n\n/**\n * Partial payer schema (based on minimal, all fields optional).\n */\nexport const payerPartialSchema = payerMinimalSchema.partial();\n\nexport type PayerPartial = z.infer<typeof payerPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport {\n model,\n type Schema as MongooseSchema,\n type Model as MongooseModel,\n} from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\n/**\n * Current schema version for the Queue model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const QUEUE_SCHEMA_VERSION = 1;\n\nexport const queueSchema = z.object({\n id: z.string().uuid({ message: \"id must be a valid UUID\" }),\n organization_id: objectIdSchema,\n facility_id: objectIdSchema,\n unit_id: objectIdSchema,\n payer_type: z.string().min(1, { message: \"payer_type is required\" }),\n line: z.array(\n z.object({\n queue_number_id: objectIdSchema,\n queue_number: z.string().min(1, { message: \"queue_number is required\" }),\n stage: codedConceptSchema,\n status: codedConceptSchema,\n call_count: z\n .number()\n .int()\n .positive({ message: \"call_count must be a positive integer\" }),\n }),\n ),\n created_at: timestampSchema,\n created_by: z.string().min(1, { message: \"created_by is required\" }),\n updated_at: timestampSchema,\n updated_by: z.string().min(1, { message: \"updated_by is required\" }),\n schema_version: z.number().int().positive().default(QUEUE_SCHEMA_VERSION),\n});\n\nexport type Queue = z.infer<typeof queueSchema>;\n\nexport const QueueMongooseSchema: MongooseSchema =\n toMongooseSchema(queueSchema);\nexport type QueueDocument = InferDocument<typeof queueSchema>;\n\nconst QueueModelName = \"queues\";\nexport const QueueModel = model(QueueModelName, QueueMongooseSchema);\n","import { z } from \"zod\";\nimport {\n objectIdSchema,\n settingOptionSchema,\n timestampSchema,\n} from \"../../commons\";\n\nconst QUEUE_SETTING_FIELDS = [\n \"use_header_contact_info\",\n \"use_header_bank_info\",\n \"use_header_status_info\",\n \"rules_drug_formulary\",\n \"rules_method\",\n \"rules_global_cover_outpatient\",\n \"rules_global_cover_emergency\",\n \"rules_global_tariff_calculation_date\",\n \"rules_global_margin_id\",\n \"rules_global_rule_type\",\n \"rules_admin_calculate\",\n \"rules_admin_min_fee\",\n \"rules_admin_max_fee\",\n \"rules_admin_before_discount\",\n \"rules_admin_covered\",\n \"rules_item_restriction_id\",\n];\n\n/**\n * Current schema version for the Queue settings record.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const QUEUE_SETTINGS_SCHEMA_VERSION = 1;\n\nexport const queueSettingsSchema = z.object({\n _id: objectIdSchema,\n scope: z.string().min(1),\n options: z.array(\n settingOptionSchema.refine(\n (opt) => QUEUE_SETTING_FIELDS.includes(opt.field),\n { message: \"Invalid field for queue settings\" },\n ),\n ),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(QUEUE_SETTINGS_SCHEMA_VERSION),\n});\n\nexport const queueSettingsKVSchema = z.object({\n use_header_contact_info: z.boolean().default(false),\n use_header_bank_info: z.boolean().default(false),\n use_header_status_info: z.boolean().default(true),\n rules_drug_formulary: z.string().optional(),\n rules_method: z.string().optional(),\n rules_global_cover_outpatient: z.boolean().default(true),\n rules_global_cover_emergency: z.boolean().default(true),\n rules_global_tariff_calculation_date: z\n .enum([\"transaction-date\", \"billing-date\"])\n .default(\"transaction-date\"),\n rules_global_margin_id: z.string().optional(),\n rules_global_rule_type: z.enum([\"margin\", \"plafond\"]).default(\"margin\"),\n rules_admin_calculate: z.boolean().default(false),\n rules_admin_min_fee: z.number().default(0),\n rules_admin_max_fee: z.number().default(0),\n rules_admin_before_discount: z.boolean().default(false),\n rules_admin_covered: z.boolean().default(true),\n rules_item_restriction_id: z.string().optional(),\n});\n\nexport type QueueSettings = z.infer<typeof queueSettingsSchema>;\nexport type QueueSettingsKV = z.infer<typeof queueSettingsKVSchema>;\n","import { z } from \"zod\";\nimport { queueSchema, type Queue } from \"./queue.schema\";\n\n/**\n * Minimal queue schema (omits server-generated fields).\n */\nexport const queueMinimalSchema = queueSchema.omit({\n id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type QueueMinimal = z.infer<typeof queueMinimalSchema>;\n","import { z } from \"zod\";\nimport { queueMinimalSchema, type QueueMinimal } from \"./queue-minimal.schema\";\n\n/**\n * Partial queue schema (based on minimal, all fields optional).\n */\nexport const queuePartialSchema = queueMinimalSchema.partial();\n\nexport type QueuePartial = z.infer<typeof queuePartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\n/**\n * Current schema version for the Queue Event Log model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const QUEUE_EVENT_LOG_SCHEMA_VERSION = 1;\n\nexport const queueEventLogSchema = z.object({\n id: z.string().uuid({ message: \"id must be a valid UUID\" }),\n queue_number_id: objectIdSchema,\n queue_number: z.string().min(1, { message: \"queue_number is required\" }),\n events: z.array(codedConceptSchema),\n count: z\n .number()\n .int()\n .positive({ message: \"count must be a positive integer\" }),\n created_at: timestampSchema,\n created_by: z.string().min(1, { message: \"created_by is required\" }),\n updated_at: timestampSchema,\n updated_by: z.string().min(1, { message: \"updated_by is required\" }),\n schema_version: z.number().int().positive().default(QUEUE_EVENT_LOG_SCHEMA_VERSION),\n});\n\nexport type QueueEventLog = z.infer<typeof queueEventLogSchema>;\n\nexport const QueueEventLogMongooseSchema: MongooseSchema = toMongooseSchema(queueEventLogSchema);\nexport type QueueEventLogDocument = InferDocument<typeof queueEventLogSchema>;\n\nconst QueueEventLogModelName = \"queue_event_logs\";\nexport const QueueEventLogModel = model(QueueEventLogModelName, QueueEventLogMongooseSchema);\n","import { z } from \"zod\";\nimport { queueEventLogSchema, type QueueEventLog } from \"./queue-event-log.schema\";\n\n/**\n * Minimal queue-event-log schema (omits server-generated fields).\n */\nexport const queueEventLogMinimalSchema = queueEventLogSchema.omit({\n id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n schema_version: true,\n});\n\nexport type QueueEventLogMinimal = z.infer<typeof queueEventLogMinimalSchema>;\n","import { z } from \"zod\";\nimport { queueEventLogMinimalSchema, type QueueEventLogMinimal } from \"./queue-event-log-minimal.schema\";\n\n/**\n * Partial queue-event-log schema (based on minimal, all fields optional).\n */\nexport const queueEventLogPartialSchema = queueEventLogMinimalSchema.partial();\n\nexport type QueueEventLogPartial = z.infer<typeof queueEventLogPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport {\n model,\n type Schema as MongooseSchema,\n type Model as MongooseModel,\n} from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { codedConceptSchema, type CodedConcept } from \"../../commons\";\nimport { timestampSchema } from \"../../commons/timestamp\";\n\nconst isoDatetimeRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})$/;\n\n/**\n * Current schema version for the Queue Number model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const QUEUE_NUMBER_SCHEMA_VERSION = 1;\n\nexport const queueNumberSchema = z.object({\n id: z.string().uuid({ message: \"id must be a valid UUID\" }),\n organization_id: objectIdSchema,\n facility_id: objectIdSchema,\n patient_id: objectIdSchema,\n metadata: z.object({\n payer_type: z.string().min(1, { message: \"payer_type is required\" }),\n unit_id: objectIdSchema,\n practitioner_id: objectIdSchema,\n date: z.string().refine((val) => isoDatetimeRegex.test(val), {\n message: \"date must be a valid ISO 8601 datetime\",\n }),\n session: z.string().min(1, { message: \"session is required\" }),\n }),\n sequence: z\n .number()\n .int()\n .positive({ message: \"sequence must be a positive integer\" }),\n prefix: z.string().min(1, { message: \"prefix is required\" }),\n number: z.string().min(1, { message: \"number is required\" }),\n created_at: timestampSchema,\n created_by: z.string().min(1, { message: \"created_by is required\" }),\n updated_at: timestampSchema,\n updated_by: z.string().min(1, { message: \"updated_by is required\" }),\n expired_at: z.string().refine((val) => isoDatetimeRegex.test(val), {\n message: \"expired_at must be a valid ISO 8601 datetime\",\n }),\n schema_version: z.number().int().positive().default(QUEUE_NUMBER_SCHEMA_VERSION),\n});\n\nexport type QueueNumber = z.infer<typeof queueNumberSchema>;\n\nexport const QueueNumberMongooseSchema: MongooseSchema =\n toMongooseSchema(queueNumberSchema);\nexport type QueueNumberDocument = InferDocument<typeof queueNumberSchema>;\n\nconst QueueNumberModelName = \"queue_numbers\";\nexport const QueueNumberModel = model(\n QueueNumberModelName,\n QueueNumberMongooseSchema,\n);\n","import { z } from \"zod\";\nimport {\n objectIdSchema,\n settingOptionSchema,\n timestampSchema,\n} from \"../../commons\";\n\nconst QUEUE_NUMBER_SETTING_FIELDS = [\n \"use_header_contact_info\",\n \"use_header_bank_info\",\n \"use_header_status_info\",\n \"rules_drug_formulary\",\n \"rules_method\",\n \"rules_global_cover_outpatient\",\n \"rules_global_cover_emergency\",\n \"rules_global_tariff_calculation_date\",\n \"rules_global_margin_id\",\n \"rules_global_rule_type\",\n \"rules_admin_calculate\",\n \"rules_admin_min_fee\",\n \"rules_admin_max_fee\",\n \"rules_admin_before_discount\",\n \"rules_admin_covered\",\n \"rules_item_restriction_id\",\n];\n\n/**\n * Current schema version for the Queue Number settings record.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const QUEUE_NUMBER_SETTINGS_SCHEMA_VERSION = 1;\n\nexport const queueNumberSettingsSchema = z.object({\n _id: objectIdSchema,\n scope: z.string().min(1),\n options: z.array(\n settingOptionSchema.refine(\n (opt) => QUEUE_NUMBER_SETTING_FIELDS.includes(opt.field),\n { message: \"Invalid field for queue number settings\" },\n ),\n ),\n updated_at: timestampSchema,\n updated_by: z.string(),\n schema_version: z.number().int().positive().default(QUEUE_NUMBER_SETTINGS_SCHEMA_VERSION),\n});\n\nexport const queueNumberSettingsKVSchema = z.object({\n use_header_contact_info: z.boolean().default(false),\n use_header_bank_info: z.boolean().default(false),\n use_header_status_info: z.boolean().default(true),\n rules_drug_formulary: z.string().optional(),\n rules_method: z.string().optional(),\n rules_global_cover_outpatient: z.boolean().default(true),\n rules_global_cover_emergency: z.boolean().default(true),\n rules_global_tariff_calculation_date: z\n .enum([\"transaction-date\", \"billing-date\"])\n .default(\"transaction-date\"),\n rules_global_margin_id: z.string().optional(),\n rules_global_rule_type: z.enum([\"margin\", \"plafond\"]).default(\"margin\"),\n rules_admin_calculate: z.boolean().default(false),\n rules_admin_min_fee: z.number().default(0),\n rules_admin_max_fee: z.number().default(0),\n rules_admin_before_discount: z.boolean().default(false),\n rules_admin_covered: z.boolean().default(true),\n rules_item_restriction_id: z.string().optional(),\n});\n\nexport type QueueNumberSettings = z.infer<typeof queueNumberSettingsSchema>;\nexport type QueueNumberSettingsKV = z.infer<typeof queueNumberSettingsKVSchema>;\n","import { z } from \"zod\";\nimport { queueNumberSchema, type QueueNumber } from \"./queue-number.schema\";\n\n/**\n * Minimal queue-number schema (omits server-generated fields).\n */\nexport const queueNumberMinimalSchema = queueNumberSchema.omit({\n id: true,\n created_at: true,\n created_by: true,\n updated_at: true,\n updated_by: true,\n expired_at: true,\n schema_version: true,\n});\n\nexport type QueueNumberMinimal = z.infer<typeof queueNumberMinimalSchema>;\n","import { z } from \"zod\";\nimport { queueNumberMinimalSchema, type QueueNumberMinimal } from \"./queue-number-minimal.schema\";\n\n/**\n * Partial queue-number schema (based on minimal, all fields optional).\n */\nexport const queueNumberPartialSchema = queueNumberMinimalSchema.partial();\n\nexport type QueueNumberPartial = z.infer<typeof queueNumberPartialSchema>;\n"]}
|