@centricare/contract 0.3.0 → 0.3.5
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/dist/index.cjs +286 -68
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +1241 -1234
- package/dist/index.d.ts +1241 -1234
- package/dist/index.mjs +257 -70
- package/dist/index.mjs.map +1 -1
- package/dist/registry/index.cjs +0 -1
- package/dist/registry/index.cjs.map +1 -1
- package/dist/registry/index.mjs +0 -1
- package/dist/registry/index.mjs.map +1 -1
- package/package.json +2 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +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/commons/base-schema.ts","../src/commons/base-schema-expired-at.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-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","../src/models/article/article.schema.ts","../src/models/article/article-minimal.schema.ts","../src/models/article/article-partial.schema.ts"],"names":["z","isoDatetimeRegex","toMongooseSchema","model"],"mappings":"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","file":"index.cjs","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\nconst SETTING_OPTIONS_TYPE = [\n // Single input\n \"string\", // Mapped to text input in client\n \"number\", // Mapped to number input in client\n \"boolean\", // Mapped to checkbox/switch in client\n \"date\", // Mapped date picker in client\n \"datetime\", // Mapped datetime picker in client\n \"daterange\", // Mapped date range picker in client\n \"image\", // Mapped to file input (single image only) in client\n\n // Multiple input\n \"strings\", // Mapped to nested array text input in client\n \"numbers\", // Mapped to nested array number input in client\n \"images\", // Mapped to file input (multiple image) in client\n \"keyvals\", // Mapped to nested array text input pair in client\n];\n\nexport const settingOptionTypeSchema = z.union([\n z.enum(SETTING_OPTIONS_TYPE),\n z.string(),\n z.string().array(),\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\n .union([\n z.string(),\n z.boolean(),\n z.number(),\n z.string().array(),\n z.number().array(),\n z.object({ key: z.string(), value: z.string() }),\n ])\n .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 {\n \"value\": \"active\",\n \"display\": \"Active\",\n \"description\": \"Record is still active and valid\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"inactive\",\n \"display\": \"Inactive\",\n \"description\": \"Record is no longer active and valid\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"suspended\",\n \"display\": \"Suspended\",\n \"description\": \"Record is suspended and may not be used or valid until the suspension is over\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"blacklisted\",\n \"display\": \"Blacklisted\",\n \"description\": \"Patient is blacklisted from the facility\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"deceased\",\n \"display\": \"Deceased\",\n \"description\": \"Patient is already deceased\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"married\",\n \"display\": \"Married\",\n \"description\": \"Person is married\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"unmarried\",\n \"display\": \"Unmarried\",\n \"description\": \"Person is not married\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"widowed\",\n \"display\": \"Widowed\",\n \"description\": \"Person is widowed due to the death of their spouse\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"divorced\",\n \"display\": \"Divorced\",\n \"description\": \"Person is legally divorced\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"open\",\n \"display\": \"Open\",\n \"description\": \"Resource is open and operating\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"closed\",\n \"display\": \"Closed\",\n \"description\": \"Resource is closed and not operating\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"maintenance\",\n \"display\": \"Maintenance\",\n \"description\": \"Resource is in maintenance and not operating\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"idle\",\n \"display\": \"Idle\",\n \"description\": \"Queue number are not in progress\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"in-progress\",\n \"display\": \"In Progress\",\n \"description\": \"Queue number are in progress\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"done\",\n \"display\": \"Done\",\n \"description\": \"Queue number are done with service\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"skip\",\n \"display\": \"Skip\",\n \"description\": \"Indicate the queue number are skipped and at the bottom of call priority\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"tuan\",\n \"display\": \"Tn.\",\n \"description\": \"Adult male honorific or title (Mr.)\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"nyonya\",\n \"display\": \"Ny.\",\n \"description\": \"Married or adult female honorific or title (Mrs.)\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"anak\",\n \"display\": \"An.\",\n \"description\": \"Child or pediatric patient honorific\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"m\",\n \"display\": \"Male\",\n \"description\": \"Male characteristics\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"f\",\n \"display\": \"Female\",\n \"description\": \"Female characteristics\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"i\",\n \"display\": \"Intersex\",\n \"description\": \"Biological sex characteristics that do not fit typical medical definitions\",\n \"status\": \"Proposed\"\n }\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 {\n \"value\": \"islam\",\n \"display\": \"Islam\",\n \"description\": \"The islamic belief system\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"protestantism\",\n \"display\": \"Protestant\",\n \"description\": \"The protestantism belief system\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"catholicism\",\n \"display\": \"Catholic\",\n \"description\": \"The catholicism belief system\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"hinduism\",\n \"display\": \"Hindu\",\n \"description\": \"The hinduism belief system\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"buddhism\",\n \"display\": \"Buddha\",\n \"description\": \"The buddhism belief system\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"confucianism\",\n \"display\": \"Confucian\",\n \"description\": \"The confucianism belief system\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"a\",\n \"display\": \"A\",\n \"description\": \"Blood group A\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"b\",\n \"display\": \"B\",\n \"description\": \"Blood group B\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"ab\",\n \"display\": \"AB\",\n \"description\": \"Blood group AB\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"o\",\n \"display\": \"O\",\n \"description\": \"Blood group O\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"positive\",\n \"display\": \"Rh-Positive (+)\",\n \"description\": \"Presence of Rhesus (RhD) antigen\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"negative\",\n \"display\": \"Rh-Negative (-)\",\n \"description\": \"Absence of Rhesus (RhD) antigen\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"primary\",\n \"display\": \"Primary\",\n \"description\": \"Highest level of priority\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"secondary\",\n \"display\": \"Secondary\",\n \"description\": \"Secondary level of priority\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"tertiary\",\n \"display\": \"Tertiary\",\n \"description\": \"Third-tier or lowest level of priority\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"very-low\",\n \"display\": \"Very Low\",\n \"description\": \"Minimal or lowest level of intensity\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"low\",\n \"display\": \"Low\",\n \"description\": \"Minor or low level of intensity\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"medium\",\n \"display\": \"Medium\",\n \"description\": \"Moderate or average level of intensity\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"high\",\n \"display\": \"High\",\n \"description\": \"High or elevated level of intensity\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"very-high\",\n \"display\": \"Very High\",\n \"description\": \"Extreme or critical level of intensity\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"dash\",\n \"display\": \"Dash (-)\",\n \"description\": \"Use dash as separator\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"dot\",\n \"display\": \"Dot (.)\",\n \"description\": \"Use dot as separator\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"none\",\n \"display\": \"None\",\n \"description\": \"No separator\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"emergency-contact\",\n \"display\": \"Emergency Contact\",\n \"description\": \"Patient emergency contact info\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"emergency-address\",\n \"display\": \"Emergency Address\",\n \"description\": \"Patient emergency address info\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"relationship\",\n \"display\": \"Relationship\",\n \"description\": \"Patient relationship information\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"blood-info\",\n \"display\": \"Blood Information\",\n \"description\": \"Patient blood information\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"payer\",\n \"display\": \"Payer Information\",\n \"description\": \"Patient payer information\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"insurance\",\n \"display\": \"Insurance\",\n \"description\": \"Third-party health insurance payer\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"government\",\n \"display\": \"Government\",\n \"description\": \"Government-sponsored health program\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"corporate\",\n \"display\": \"Corporate\",\n \"description\": \"Company-sponsored health benefit\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"self\",\n \"display\": \"Self\",\n \"description\": \"Patient pay out of pocket\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"waiting\",\n \"display\": \"Waiting\",\n \"description\": \"Waiting stage\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"processing\",\n \"display\": \"Processing\",\n \"description\": \"Processing stage\",\n \"status\": \"Active\"\n }\n ]\n },\n {\n \"system\": \"crn:queue:priority\",\n \"domain\": \"queue\",\n \"variant\": \"priority\",\n \"display\": \"Queue Priority\",\n \"description\": \"Queue sort and call priority\",\n \"type\": \"parameter\",\n \"values\": [\n {\n \"value\": \"sequence\",\n \"display\": \"Sequence\",\n \"description\": \"Based on queue sequence number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"arrival\",\n \"display\": \"Arrival\",\n \"description\": \"Based on queue arrival\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"spouse\",\n \"display\": \"Spouse\",\n \"description\": \"Partner in a marriage or legal union\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"father\",\n \"display\": \"Father\",\n \"description\": \"Male parent\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"mother\",\n \"display\": \"Mother\",\n \"description\": \"Female parent\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"grandfather\",\n \"display\": \"Grandfather\",\n \"description\": \"Father of a person's father or mother\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"grandmother\",\n \"display\": \"Grandmother\",\n \"description\": \"Mother of a person's father or mother\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"grandchildren\",\n \"display\": \"Grandchildren\",\n \"description\": \"Child or children of a person's son or daughter\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"children\",\n \"display\": \"Children\",\n \"description\": \"Person's offspring or child\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"recurring\",\n \"display\": \"Recurring\",\n \"description\": \"A recurring schedule\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"one-time\",\n \"display\": \"One-Time\",\n \"description\": \"A one-time schedule\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"medical\",\n \"display\": \"Medical\",\n \"description\": \"Department for medical affair\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"administrative\",\n \"display\": \"Administrative\",\n \"description\": \"Department for administrative affair\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"operational\",\n \"display\": \"Operational\",\n \"description\": \"Department for operational affair\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"medical-service\",\n \"display\": \"Medical Service\",\n \"description\": \"Unit that provide medical service\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"pharmacy\",\n \"display\": \"Pharmacy\",\n \"description\": \"Unit for pharmacy\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"ancillary\",\n \"display\": \"Ancillary\",\n \"description\": \"Unit for ancillary services\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"service-counter\",\n \"display\": \"Service Counter\",\n \"description\": \"Unit that act as counter for various purposes\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"cashier\",\n \"display\": \"Cashier\",\n \"description\": \"Unit that act as counter for cashier\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"building\",\n \"display\": \"Building\",\n \"description\": \"A building\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"level\",\n \"display\": \"Level\",\n \"description\": \"A floor level\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"bed\",\n \"display\": \"Bed\",\n \"description\": \"A bed\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"cabinet\",\n \"display\": \"Cabinet\",\n \"description\": \"A cabinet\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"practitioner\",\n \"display\": \"Practitioner\",\n \"description\": \"Healthcare practitioner (i.e. Doctor)\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"medical\",\n \"display\": \"Medical\",\n \"description\": \"Medical staff (i.e. Nurse, Therapist)\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"non-medical\",\n \"display\": \"Non Medical\",\n \"description\": \"Non medical staff (i.e. Administrator staff)\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"staff-to-unit\",\n \"display\": \"Staff to Unit\",\n \"description\": \"Assignment of staff to a unit\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"location-to-unit\",\n \"display\": \"Location to Unit\",\n \"description\": \"Assignment of location to a unit\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"nik\",\n \"display\": \"NIK\",\n \"description\": \"Nomor Induk Kependudukan\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"mrn\",\n \"display\": \"MRN\",\n \"description\": \"Medical Record Number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"passport\",\n \"display\": \"Passport Number\",\n \"description\": \"Passport Number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"str\",\n \"display\": \"STR\",\n \"description\": \"Surat Tanda Registrasi by Konsil Kedokteran Indonesia\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"sip\",\n \"display\": \"SIP\",\n \"description\": \"Surat Izin Praktik by Dinas Kesehatan\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"npa\",\n \"display\": \"NPA\",\n \"description\": \"Nomor Pokok Anggota by Ikatan Dokter Indonesia\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"mobile\",\n \"display\": \"Mobile\",\n \"description\": \"Cellular or mobile phone contact number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"phone\",\n \"display\": \"Phone\",\n \"description\": \"Landline or primary telephone contact number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"email\",\n \"display\": \"Email\",\n \"description\": \"Electronic mail address for digital communication\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"fax\",\n \"display\": \"Fax\",\n \"description\": \"Facsimile machine contact number\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"create\",\n \"display\": \"Create\",\n \"description\": \"Event triggered when creating a resource\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"update\",\n \"display\": \"Update\",\n \"description\": \"Event triggered when updating a resource\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"delete\",\n \"display\": \"Delete\",\n \"description\": \"Event triggered when deleting a resource\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"called\",\n \"display\": \"Called\",\n \"description\": \"Event triggered when calling a queue number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"skipped\",\n \"display\": \"Skipped\",\n \"description\": \"Event triggered when skipping a queue number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"noshow\",\n \"display\": \"No Show\",\n \"description\": \"Event triggered when patient fails to show up\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"arrived\",\n \"display\": \"Arrived\",\n \"description\": \"Event triggered when patient arrives at the location\",\n \"status\": \"Active\"\n }\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.nullable(),\n ethnicity: z.string().nullable(),\n marital_status: codedConceptSchema.nullable(),\n date_of_birth: z.string().nullable(),\n place_of_birth: z.string().nullable(),\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 { objectIdSchema } from \"./object-id\";\nimport { timestampSchema } from \"./timestamp\";\n\n/**\n * Standard base audit/timestamp fields.\n *\n * Includes `_id` and `schema_version` with defaults driven by the version\n * constant each model passes in. All fields are required.\n *\n * @param version - The model's schema version constant (e.g. PATIENT_SCHEMA_VERSION)\n */\nexport const baseSchema = (version: number) =>\n z.object({\n _id: objectIdSchema,\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(version),\n });\n\nexport type BaseSchema = z.infer<ReturnType<typeof baseSchema>>;\n","import { z } from \"zod\";\nimport { objectIdSchema } from \"./object-id\";\nimport { timestampSchema } from \"./timestamp\";\n\n/**\n * Base audit/timestamp fields with a required `expired_at` field.\n *\n * For models that track expiration timestamps. Includes `_id` and\n * `schema_version` with a default driven by the version constant each model\n * passes in. All fields are required.\n *\n * @param version - The model's schema version constant\n */\nexport const baseSchemaWithExpiredAt = (version: number) =>\n z.object({\n _id: objectIdSchema,\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: timestampSchema,\n schema_version: z.number().int().positive().default(version),\n });\n\nexport type BaseSchemaWithExpiredAt = z.infer<\n ReturnType<typeof baseSchemaWithExpiredAt>\n>;\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 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 {\n model,\n type Schema as MongooseSchema,\n type Model as MongooseModel,\n} from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { codedConceptSchema } from \"../../commons/coded-concept\";\nimport { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(ASSIGNMENT_SCHEMA_VERSION).extend({\n facility_id: objectIdSchema,\n type: codedConceptSchema,\n for: z.string().min(1, { message: \"for is required\" }),\n assigned_to: z\n .array(\n z.string().min(1, {\n message: \"assigned_to is required\",\n }),\n )\n .min(1),\n});\n\nexport type Assignment = z.infer<typeof assignmentSchema>;\n\nexport const AssignmentMongooseSchema: MongooseSchema =\n toMongooseSchema(assignmentSchema);\nexport type AssignmentDocument = InferDocument<typeof assignmentSchema>;\n\nconst AssignmentModelName = \"assignments\";\nexport const AssignmentModel = model(\n AssignmentModelName,\n AssignmentMongooseSchema,\n);\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 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\";\nimport { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(DEPARTMENT_SCHEMA_VERSION).extend({\n facility_id: objectIdSchema,\n name: z.string().min(1, { message: \"name is required\" }),\n type: codedConceptSchema,\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 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\";\nimport { validateCode } from \"../../registry\";\n\nconst FACILITY_SETTING_FIELDS = [\n \"branding_logo\",\n \"satusehat_org_id\",\n \"satusehat_client_id\",\n \"satusehat_client_secret\",\n \"queue_number_length\",\n \"queue_number_separator\",\n \"queue_call_threshold\",\n \"queue_call_priority\",\n \"kiosk_announcements\",\n \"kiosk_gallery\",\n \"kiosk_faq\",\n \"kiosk_services\",\n \"payer_types\",\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\n .number()\n .int()\n .positive()\n .default(FACILITY_SETTINGS_SCHEMA_VERSION),\n});\n\nexport const facilitySettingsKVSchema = z.object({\n branding_logo: z.string().nullable(),\n satusehat_org_id: z.string().nullable(),\n satusehat_client_id: z.string().nullable(),\n satusehat_client_secret: z.string().nullable(),\n queue_number_length: z.number().int().positive().nullable().default(3),\n queue_number_separator: z.string().nullable(),\n queue_call_priority: z\n .string()\n .default(\"sequence\")\n .refine((data) => validateCode(\"crn:queue:priority\", data), {\n message:\n \"Invalid CodedConcept: system/value combination not found in registry\",\n }),\n queue_call_threshold: z.number().int().positive().default(3),\n kiosk_announcements: z.string().array(),\n kiosk_gallery: z.url().array(),\n kiosk_faq: z.object({ key: z.string(), value: z.string() }).array(),\n kiosk_services: z.object({ key: z.string(), value: z.string() }).array(),\n payer_types: z.string().array(),\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 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(LOCATION_SCHEMA_VERSION).extend({\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});\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 schema_version: 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 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 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 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 {\n model,\n type Schema as MongooseSchema,\n type Model as MongooseModel,\n} 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 { addressSchema } from \"../../commons/address\";\nimport { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(PATIENT_SCHEMA_VERSION).extend({\n organization_id: objectIdSchema,\n registering_facility_id: objectIdSchema,\n identifiers: z.array(codedConceptSchema),\n salutation: codedConceptSchema,\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.extend({\n place_of_birth: demographicSchema.shape.place_of_birth.unwrap(),\n date_of_birth: demographicSchema.shape.date_of_birth.unwrap(),\n marital_status: demographicSchema.shape.marital_status.unwrap(),\n }),\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});\n\nexport type Patient = z.infer<typeof patientSchema>;\n\nexport const PatientMongooseSchema: MongooseSchema =\n 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 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(PATIENT_ADDITIONAL_SCHEMA_VERSION).extend({\n patient_id: objectIdSchema,\n type: codedConceptSchema,\n data: z.union([z.object({}), z.array(z.any())]),\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 PatientAdditional 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 PatientAdditional schema (based on minimal, all 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(STAFF_SCHEMA_VERSION).extend({\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});\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 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(UNIT_SCHEMA_VERSION).extend({\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});\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 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(\n PRACTITIONER_SCHEDULE_SCHEMA_VERSION,\n).extend({\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});\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 PractitionerSchedule 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 PractitionerSchedule schema (based on minimal, all 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(\n PRACTITIONER_SESSION_SCHEMA_VERSION,\n).extend({\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});\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 PractitionerSession 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 PractitionerSession schema (based on minimal, all 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(KSM_SCHEMA_VERSION).extend({\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});\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 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(PAYER_SCHEMA_VERSION).extend({\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});\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 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(QUEUE_SCHEMA_VERSION).extend({\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});\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 { 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 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(QUEUE_EVENT_LOG_SCHEMA_VERSION).extend({\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});\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 QueueEventLog 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 QueueEventLog schema (based on minimal, all 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 { baseSchemaWithExpiredAt } from \"../../commons/base-schema-expired-at\";\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 = baseSchemaWithExpiredAt(\n QUEUE_NUMBER_SCHEMA_VERSION,\n).extend({\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});\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 QueueNumber 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 QueueNumber schema (based on minimal, all optional).\n */\nexport const queueNumberPartialSchema = queueNumberMinimalSchema.partial();\n\nexport type QueueNumberPartial = z.infer<typeof queueNumberPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport {\n model,\n type Schema as MongooseSchema,\n type Model as MongooseModel,\n} from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport { codedConceptSchema } from \"../../commons/coded-concept\";\nimport { baseSchema } from \"../../commons/base-schema\";\n\n/**\n * Current schema version for the Article model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const ARTICLE_SCHEMA_VERSION = 1;\n\nexport const articleSchema = baseSchema(ARTICLE_SCHEMA_VERSION).extend({\n facility_id: objectIdSchema,\n title: z.string().min(1, { message: \"for is required\" }),\n banner: z.url(),\n body: z.string(),\n status: codedConceptSchema,\n});\n\nexport type Article = z.infer<typeof articleSchema>;\n\nexport const ArticleMongooseSchema: MongooseSchema =\n toMongooseSchema(articleSchema);\nexport type ArticleDocument = InferDocument<typeof articleSchema>;\n\nconst ArticleModelName = \"articles\";\nexport const ArticleModel = model(ArticleModelName, ArticleMongooseSchema);\n","import { z } from \"zod\";\nimport { articleSchema, type Article } from \"./article.schema\";\n\n/**\n * Minimal Article schema (omits server-generated fields).\n */\nexport const articleMinimalSchema = articleSchema.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 ArticleMinimal = z.infer<typeof articleMinimalSchema>;\n","import { z } from \"zod\";\nimport { articleMinimalSchema, type ArticleMinimal } from \"./article-minimal.schema\";\n\n/**\n * Partial Article schema (based on minimal, all optional).\n */\nexport const articlePartialSchema = articleMinimalSchema.partial();\n\nexport type ArticlePartial = z.infer<typeof articlePartialSchema>;\n"]}
|
|
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/commons/base-schema.ts","../src/commons/base-schema-expired-at.ts","../src/models/patient/patient.schema.ts","../src/models/patient/patient-minimal.schema.ts","../src/models/patient/patient-partial.schema.ts","../src/models/appointment/appointment.schema.ts","../src/models/appointment/appointment-minimal.schema.ts","../src/models/appointment/appointment-partial.schema.ts","../src/models/encounter/encounter.schema.ts","../src/models/encounter/encounter-minimal.schema.ts","../src/models/encounter/encounter-partial.schema.ts","../src/models/encounter-additional/encounter-additional.schema.ts","../src/models/encounter-additional/encounter-additional-minimal.schema.ts","../src/models/encounter-additional/encounter-additional-partial.schema.ts","../src/models/medical-record/medical-record.schema.ts","../src/models/medical-record/medical-record-minimal.schema.ts","../src/models/medical-record/medical-record-partial.schema.ts","../src/models/note/note.schema.ts","../src/models/note/note-minimal.schema.ts","../src/models/note/note-partial.schema.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-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-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","../src/models/article/article.schema.ts","../src/models/article/article-minimal.schema.ts","../src/models/article/article-partial.schema.ts"],"names":["z","isoDatetimeRegex","withMongoose","mongoose","toMongooseSchema","model"],"mappings":"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","file":"index.cjs","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\nconst SETTING_OPTIONS_TYPE = [\n // Single input\n \"string\", // Mapped to text input in client\n \"number\", // Mapped to number input in client\n \"boolean\", // Mapped to checkbox/switch in client\n \"date\", // Mapped date picker in client\n \"datetime\", // Mapped datetime picker in client\n \"daterange\", // Mapped date range picker in client\n \"image\", // Mapped to file input (single image only) in client\n\n // Multiple input\n \"strings\", // Mapped to nested array text input in client\n \"numbers\", // Mapped to nested array number input in client\n \"images\", // Mapped to file input (multiple image) in client\n \"keyvals\", // Mapped to nested array text input pair in client\n];\n\nexport const settingOptionTypeSchema = z.union([\n z.enum(SETTING_OPTIONS_TYPE),\n z.string(),\n z.string().array(),\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\n .union([\n z.string(),\n z.boolean(),\n z.number(),\n z.string().array(),\n z.number().array(),\n z.object({ key: z.string(), value: z.string() }),\n ])\n .nullable(),\n});\n\nexport type SettingOption = z.infer<typeof settingOptionSchema>;\n","{\n \"schema_version\": \"1.0\",\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 {\n \"value\": \"active\",\n \"display\": \"Active\",\n \"description\": \"Record is still active and valid\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"inactive\",\n \"display\": \"Inactive\",\n \"description\": \"Record is no longer active and valid\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"suspended\",\n \"display\": \"Suspended\",\n \"description\": \"Record is suspended and may not be used or valid until the suspension is over\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"blacklisted\",\n \"display\": \"Blacklisted\",\n \"description\": \"Patient is blacklisted from the facility\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"deceased\",\n \"display\": \"Deceased\",\n \"description\": \"Patient is already deceased\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"married\",\n \"display\": \"Married\",\n \"description\": \"Person is married\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"unmarried\",\n \"display\": \"Unmarried\",\n \"description\": \"Person is not married\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"widowed\",\n \"display\": \"Widowed\",\n \"description\": \"Person is widowed due to the death of their spouse\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"divorced\",\n \"display\": \"Divorced\",\n \"description\": \"Person is legally divorced\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"open\",\n \"display\": \"Open\",\n \"description\": \"Resource is open and operating\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"closed\",\n \"display\": \"Closed\",\n \"description\": \"Resource is closed and not operating\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"maintenance\",\n \"display\": \"Maintenance\",\n \"description\": \"Resource is in maintenance and not operating\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"idle\",\n \"display\": \"Idle\",\n \"description\": \"Queue number are not in progress\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"in-progress\",\n \"display\": \"In Progress\",\n \"description\": \"Queue number are in progress\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"done\",\n \"display\": \"Done\",\n \"description\": \"Queue number are done with service\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"skip\",\n \"display\": \"Skip\",\n \"description\": \"Indicate the queue number are skipped and at the bottom of call priority\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"tuan\",\n \"display\": \"Tn.\",\n \"description\": \"Adult male honorific or title (Mr.)\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"nyonya\",\n \"display\": \"Ny.\",\n \"description\": \"Married or adult female honorific or title (Mrs.)\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"anak\",\n \"display\": \"An.\",\n \"description\": \"Child or pediatric patient honorific\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"m\",\n \"display\": \"Male\",\n \"description\": \"Male characteristics\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"f\",\n \"display\": \"Female\",\n \"description\": \"Female characteristics\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"i\",\n \"display\": \"Intersex\",\n \"description\": \"Biological sex characteristics that do not fit typical medical definitions\",\n \"status\": \"Proposed\"\n }\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 {\n \"value\": \"islam\",\n \"display\": \"Islam\",\n \"description\": \"The islamic belief system\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"protestantism\",\n \"display\": \"Protestant\",\n \"description\": \"The protestantism belief system\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"catholicism\",\n \"display\": \"Catholic\",\n \"description\": \"The catholicism belief system\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"hinduism\",\n \"display\": \"Hindu\",\n \"description\": \"The hinduism belief system\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"buddhism\",\n \"display\": \"Buddha\",\n \"description\": \"The buddhism belief system\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"confucianism\",\n \"display\": \"Confucian\",\n \"description\": \"The confucianism belief system\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"a\",\n \"display\": \"A\",\n \"description\": \"Blood group A\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"b\",\n \"display\": \"B\",\n \"description\": \"Blood group B\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"ab\",\n \"display\": \"AB\",\n \"description\": \"Blood group AB\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"o\",\n \"display\": \"O\",\n \"description\": \"Blood group O\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"positive\",\n \"display\": \"Rh-Positive (+)\",\n \"description\": \"Presence of Rhesus (RhD) antigen\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"negative\",\n \"display\": \"Rh-Negative (-)\",\n \"description\": \"Absence of Rhesus (RhD) antigen\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"primary\",\n \"display\": \"Primary\",\n \"description\": \"Highest level of priority\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"secondary\",\n \"display\": \"Secondary\",\n \"description\": \"Secondary level of priority\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"tertiary\",\n \"display\": \"Tertiary\",\n \"description\": \"Third-tier or lowest level of priority\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"very-low\",\n \"display\": \"Very Low\",\n \"description\": \"Minimal or lowest level of intensity\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"low\",\n \"display\": \"Low\",\n \"description\": \"Minor or low level of intensity\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"medium\",\n \"display\": \"Medium\",\n \"description\": \"Moderate or average level of intensity\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"high\",\n \"display\": \"High\",\n \"description\": \"High or elevated level of intensity\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"very-high\",\n \"display\": \"Very High\",\n \"description\": \"Extreme or critical level of intensity\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"dash\",\n \"display\": \"Dash (-)\",\n \"description\": \"Use dash as separator\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"dot\",\n \"display\": \"Dot (.)\",\n \"description\": \"Use dot as separator\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"none\",\n \"display\": \"None\",\n \"description\": \"No separator\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"emergency-contact\",\n \"display\": \"Emergency Contact\",\n \"description\": \"Patient emergency contact info\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"emergency-address\",\n \"display\": \"Emergency Address\",\n \"description\": \"Patient emergency address info\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"relationship\",\n \"display\": \"Relationship\",\n \"description\": \"Patient relationship information\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"blood-info\",\n \"display\": \"Blood Information\",\n \"description\": \"Patient blood information\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"payer\",\n \"display\": \"Payer Information\",\n \"description\": \"Patient payer information\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"insurance\",\n \"display\": \"Insurance\",\n \"description\": \"Third-party health insurance payer\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"government\",\n \"display\": \"Government\",\n \"description\": \"Government-sponsored health program\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"corporate\",\n \"display\": \"Corporate\",\n \"description\": \"Company-sponsored health benefit\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"self\",\n \"display\": \"Self\",\n \"description\": \"Patient pay out of pocket\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"waiting\",\n \"display\": \"Waiting\",\n \"description\": \"Waiting stage\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"processing\",\n \"display\": \"Processing\",\n \"description\": \"Processing stage\",\n \"status\": \"Active\"\n }\n ]\n },\n {\n \"system\": \"crn:queue:priority\",\n \"domain\": \"queue\",\n \"variant\": \"priority\",\n \"display\": \"Queue Priority\",\n \"description\": \"Queue sort and call priority\",\n \"type\": \"parameter\",\n \"values\": [\n {\n \"value\": \"sequence\",\n \"display\": \"Sequence\",\n \"description\": \"Based on queue sequence number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"arrival\",\n \"display\": \"Arrival\",\n \"description\": \"Based on queue arrival\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"spouse\",\n \"display\": \"Spouse\",\n \"description\": \"Partner in a marriage or legal union\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"father\",\n \"display\": \"Father\",\n \"description\": \"Male parent\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"mother\",\n \"display\": \"Mother\",\n \"description\": \"Female parent\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"grandfather\",\n \"display\": \"Grandfather\",\n \"description\": \"Father of a person's father or mother\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"grandmother\",\n \"display\": \"Grandmother\",\n \"description\": \"Mother of a person's father or mother\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"grandchildren\",\n \"display\": \"Grandchildren\",\n \"description\": \"Child or children of a person's son or daughter\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"children\",\n \"display\": \"Children\",\n \"description\": \"Person's offspring or child\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"recurring\",\n \"display\": \"Recurring\",\n \"description\": \"A recurring schedule\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"one-time\",\n \"display\": \"One-Time\",\n \"description\": \"A one-time schedule\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"medical\",\n \"display\": \"Medical\",\n \"description\": \"Department for medical affair\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"administrative\",\n \"display\": \"Administrative\",\n \"description\": \"Department for administrative affair\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"operational\",\n \"display\": \"Operational\",\n \"description\": \"Department for operational affair\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"medical-service\",\n \"display\": \"Medical Service\",\n \"description\": \"Unit that provide medical service\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"pharmacy\",\n \"display\": \"Pharmacy\",\n \"description\": \"Unit for pharmacy\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"ancillary\",\n \"display\": \"Ancillary\",\n \"description\": \"Unit for ancillary services\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"service-counter\",\n \"display\": \"Service Counter\",\n \"description\": \"Unit that act as counter for various purposes\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"cashier\",\n \"display\": \"Cashier\",\n \"description\": \"Unit that act as counter for cashier\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"building\",\n \"display\": \"Building\",\n \"description\": \"A building\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"level\",\n \"display\": \"Level\",\n \"description\": \"A floor level\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"bed\",\n \"display\": \"Bed\",\n \"description\": \"A bed\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"cabinet\",\n \"display\": \"Cabinet\",\n \"description\": \"A cabinet\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"practitioner\",\n \"display\": \"Practitioner\",\n \"description\": \"Healthcare practitioner (i.e. Doctor)\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"medical\",\n \"display\": \"Medical\",\n \"description\": \"Medical staff (i.e. Nurse, Therapist)\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"non-medical\",\n \"display\": \"Non Medical\",\n \"description\": \"Non medical staff (i.e. Administrator staff)\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"staff-to-unit\",\n \"display\": \"Staff to Unit\",\n \"description\": \"Assignment of staff to a unit\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"location-to-unit\",\n \"display\": \"Location to Unit\",\n \"description\": \"Assignment of location to a unit\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"nik\",\n \"display\": \"NIK\",\n \"description\": \"Nomor Induk Kependudukan\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"mrn\",\n \"display\": \"MRN\",\n \"description\": \"Medical Record Number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"passport\",\n \"display\": \"Passport Number\",\n \"description\": \"Passport Number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"str\",\n \"display\": \"STR\",\n \"description\": \"Surat Tanda Registrasi by Konsil Kedokteran Indonesia\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"sip\",\n \"display\": \"SIP\",\n \"description\": \"Surat Izin Praktik by Dinas Kesehatan\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"npa\",\n \"display\": \"NPA\",\n \"description\": \"Nomor Pokok Anggota by Ikatan Dokter Indonesia\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"mobile\",\n \"display\": \"Mobile\",\n \"description\": \"Cellular or mobile phone contact number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"phone\",\n \"display\": \"Phone\",\n \"description\": \"Landline or primary telephone contact number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"email\",\n \"display\": \"Email\",\n \"description\": \"Electronic mail address for digital communication\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"fax\",\n \"display\": \"Fax\",\n \"description\": \"Facsimile machine contact number\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"create\",\n \"display\": \"Create\",\n \"description\": \"Event triggered when creating a resource\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"update\",\n \"display\": \"Update\",\n \"description\": \"Event triggered when updating a resource\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"delete\",\n \"display\": \"Delete\",\n \"description\": \"Event triggered when deleting a resource\",\n \"status\": \"Active\"\n }\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 {\n \"value\": \"called\",\n \"display\": \"Called\",\n \"description\": \"Event triggered when calling a queue number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"skipped\",\n \"display\": \"Skipped\",\n \"description\": \"Event triggered when skipping a queue number\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"noshow\",\n \"display\": \"No Show\",\n \"description\": \"Event triggered when patient fails to show up\",\n \"status\": \"Active\"\n },\n {\n \"value\": \"arrived\",\n \"display\": \"Arrived\",\n \"description\": \"Event triggered when patient arrives at the location\",\n \"status\": \"Active\"\n }\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.nullable(),\n ethnicity: z.string().nullable(),\n marital_status: codedConceptSchema.nullable(),\n date_of_birth: z.string().nullable(),\n place_of_birth: z.string().nullable(),\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 mongoose from \"mongoose\";\nimport { withMongoose } from \"@nullix/zod-mongoose\";\nimport { z } from \"zod\";\n\n/**\n * ObjectId schema for MongoDB document IDs.\n * Validates a 24-character hexadecimal string (MongoDB ObjectId format).\n *\n * Uses `withMongoose` to tag the schema with `mongoose.Schema.Types.ObjectId`\n * so that `toMongooseSchema()` correctly maps it to a Mongoose ObjectId path,\n * while `z.infer()` still returns `string`.\n *\n * The exported value is typed as `z.ZodString` (not the `withMongoose` return\n * type) to avoid unnameable `MergeOptions` / `WithSchemaMetadata` type errors\n * in consumer code. At runtime the schema still carries the Mongoose metadata.\n */\nconst _objectIdSchema = withMongoose(\n z\n .string()\n .length(24)\n .refine(\n (val) => /^[0-9a-fA-F]{24}$/.test(val),\n { message: \"Invalid ObjectId: must be a 24-character hexadecimal string\" }\n ),\n { type: mongoose.Schema.Types.ObjectId },\n);\n\nexport const objectIdSchema: z.ZodString = _objectIdSchema;\n\nexport type ObjectId = z.infer<typeof objectIdSchema>;\n","import { z } from \"zod\";\nimport { objectIdSchema } from \"./object-id\";\nimport { timestampSchema } from \"./timestamp\";\n\n/**\n * Standard base audit/timestamp fields.\n *\n * Includes `_id` and `schema_version` with defaults driven by the version\n * constant each model passes in. All fields are required.\n *\n * @param version - The model's schema version constant (e.g. PATIENT_SCHEMA_VERSION)\n */\nexport const baseSchema = (version: number) =>\n z.object({\n _id: objectIdSchema,\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(version),\n });\n\nexport type BaseSchema = z.infer<ReturnType<typeof baseSchema>>;\n","import { z } from \"zod\";\nimport { objectIdSchema } from \"./object-id\";\nimport { timestampSchema } from \"./timestamp\";\n\n/**\n * Base audit/timestamp fields with a required `expired_at` field.\n *\n * For models that track expiration timestamps. Includes `_id` and\n * `schema_version` with a default driven by the version constant each model\n * passes in. All fields are required.\n *\n * @param version - The model's schema version constant\n */\nexport const baseSchemaWithExpiredAt = (version: number) =>\n z.object({\n _id: objectIdSchema,\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: timestampSchema,\n schema_version: z.number().int().positive().default(version),\n });\n\nexport type BaseSchemaWithExpiredAt = z.infer<\n ReturnType<typeof baseSchemaWithExpiredAt>\n>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport mongoose, { 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 { addressSchema } from \"../../commons/address\";\nimport { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(PATIENT_SCHEMA_VERSION).extend({\n organization_id: objectIdSchema,\n registering_facility_id: objectIdSchema,\n identifiers: z.array(codedConceptSchema),\n salutation: codedConceptSchema,\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.extend({\n place_of_birth: demographicSchema.shape.place_of_birth.unwrap(),\n date_of_birth: demographicSchema.shape.date_of_birth.unwrap(),\n marital_status: demographicSchema.shape.marital_status.unwrap(),\n }),\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});\n\nexport type Patient = z.infer<typeof patientSchema>;\n\nexport const PatientMongooseSchema: MongooseSchema =\n toMongooseSchema(patientSchema);\nexport type PatientDocument = InferDocument<typeof patientSchema>;\n\nconst PatientModelName = \"patients\";\nexport const PatientModel = mongoose.models[PatientModelName] || 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 optional).\n */\nexport const patientPartialSchema = patientMinimalSchema.partial();\n\nexport type PatientPartial = z.infer<typeof patientPartialSchema>;\n","import { object, z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport mongoose, { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { baseSchema } from \"../../commons/base-schema\";\nimport {\n codedConceptSchema,\n objectIdSchema,\n timestampSchema,\n} from \"../../commons\";\nimport { patientPartialSchema } from \"../patient\";\n\n/**\n * Current schema version for the Appointment model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const APPOINTMENT_SCHEMA_VERSION = 1;\n\nexport const appointmentSchema = baseSchema(APPOINTMENT_SCHEMA_VERSION).extend({\n facility_id: z.string(),\n organization_id: z.string(),\n identifiers: z.array(codedConceptSchema),\n patient: z.union([patientPartialSchema, objectIdSchema]),\n queue_number_id: objectIdSchema,\n practitioner_id: objectIdSchema,\n unit_id: objectIdSchema,\n date: z.string(),\n session: z.string(),\n payer_type: z.string(),\n method: codedConceptSchema,\n complaint: z.string(),\n statuses: z.array(codedConceptSchema),\n cancel_metadata: z.object({\n reason: z.string().nullable(),\n user_id: z.string().nullable(),\n timestamp: timestampSchema.nullable(),\n }),\n register_metadata: z.object({\n reason: z.string().nullable(),\n user_id: z.string().nullable(),\n timestamp: timestampSchema.nullable(),\n }),\n});\n\nexport type Appointment = z.infer<typeof appointmentSchema>;\n\nexport const AppointmentMongooseSchema: MongooseSchema =\n toMongooseSchema(appointmentSchema);\nexport type AppointmentDocument = InferDocument<typeof appointmentSchema>;\n\nconst AppointmentModelName = \"appointments\";\nexport const AppointmentModel = mongoose.models[AppointmentModelName] || model(AppointmentModelName, AppointmentMongooseSchema);\n","import { z } from \"zod\";\nimport { appointmentSchema, type Appointment } from \"./appointment.schema\";\n\n/**\n * Minimal Appointment schema (omits server-generated fields).\n */\nexport const appointmentMinimalSchema = appointmentSchema.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 AppointmentMinimal = z.infer<typeof appointmentMinimalSchema>;\n","import { z } from \"zod\";\nimport { appointmentMinimalSchema, type AppointmentMinimal } from \"./appointment-minimal.schema\";\n\n/**\n * Partial Appointment schema (based on minimal, all optional).\n */\nexport const appointmentPartialSchema = appointmentMinimalSchema.partial();\n\nexport type AppointmentPartial = z.infer<typeof appointmentPartialSchema>;\n","import { object, z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport mongoose, { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { baseSchema } from \"../../commons/base-schema\";\nimport {\n codedConceptSchema,\n objectIdSchema,\n timestampSchema,\n} from \"../../commons\";\nimport { patientPartialSchema } from \"../patient\";\n\n/**\n * Current schema version for the Encounter model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const ENCOUNTER_SCHEMA_VERSION = 1;\n\nexport const encounterSchema = baseSchema(ENCOUNTER_SCHEMA_VERSION).extend({\n facility_id: z.string(),\n organization_id: z.string(),\n identifiers: z.array(codedConceptSchema),\n type: codedConceptSchema,\n appointment_id: objectIdSchema.nullable(),\n patient: z.union([patientPartialSchema, objectIdSchema]),\n unit_id: objectIdSchema,\n practitioner_id: objectIdSchema.nullable(),\n date: z.string(),\n session: z.string(),\n queue_number_id: objectIdSchema,\n statuses: z.array(codedConceptSchema),\n cancel_metadata: z.object({\n reason: z.string().nullable(),\n user_id: z.string().nullable(),\n timestamp: timestampSchema.nullable(),\n }),\n discharge_metadata: z.object({\n reason: z.string().nullable(),\n user_id: z.string().nullable(),\n timestamp: timestampSchema.nullable(),\n }),\n});\n\nexport type Encounter = z.infer<typeof encounterSchema>;\n\nexport const EncounterMongooseSchema: MongooseSchema =\n toMongooseSchema(encounterSchema);\nexport type EncounterDocument = InferDocument<typeof encounterSchema>;\n\nconst EncounterModelName = \"encounters\";\nexport const EncounterModel = mongoose.models[EncounterModelName] || model(EncounterModelName, EncounterMongooseSchema);\n","import { z } from \"zod\";\nimport { encounterSchema, type Encounter } from \"./encounter.schema\";\n\n/**\n * Minimal Encounter schema (omits server-generated fields).\n */\nexport const encounterMinimalSchema = encounterSchema.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 EncounterMinimal = z.infer<typeof encounterMinimalSchema>;\n","import { z } from \"zod\";\nimport { encounterMinimalSchema, type EncounterMinimal } from \"./encounter-minimal.schema\";\n\n/**\n * Partial Encounter schema (based on minimal, all optional).\n */\nexport const encounterPartialSchema = encounterMinimalSchema.partial();\n\nexport type EncounterPartial = z.infer<typeof encounterPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport mongoose, { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { baseSchema } from \"../../commons/base-schema\";\nimport { codedConceptSchema, objectIdSchema } from \"../../commons\";\n\n/**\n * Current schema version for the EncounterAdditional model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const ENCOUNTER_ADDITIONAL_SCHEMA_VERSION = 1;\n\nexport const encounterAdditionalSchema = baseSchema(\n ENCOUNTER_ADDITIONAL_SCHEMA_VERSION,\n).extend({\n encounter_id: objectIdSchema,\n type: codedConceptSchema,\n data: z.union([z.object({}), z.array(z.any())]),\n});\n\nexport type EncounterAdditional = z.infer<typeof encounterAdditionalSchema>;\n\nexport const EncounterAdditionalMongooseSchema: MongooseSchema =\n toMongooseSchema(encounterAdditionalSchema);\nexport type EncounterAdditionalDocument = InferDocument<\n typeof encounterAdditionalSchema\n>;\n\nconst EncounterAdditionalModelName = \"encounter_additionals\";\nexport const EncounterAdditionalModel = mongoose.models[EncounterAdditionalModelName] || model(EncounterAdditionalModelName, EncounterAdditionalMongooseSchema);\n","import { z } from \"zod\";\nimport { encounterAdditionalSchema, type EncounterAdditional } from \"./encounter-additional.schema\";\n\n/**\n * Minimal EncounterAdditional schema (omits server-generated fields).\n */\nexport const encounterAdditionalMinimalSchema = encounterAdditionalSchema.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 EncounterAdditionalMinimal = z.infer<typeof encounterAdditionalMinimalSchema>;\n","import { z } from \"zod\";\nimport { encounterAdditionalMinimalSchema, type EncounterAdditionalMinimal } from \"./encounter-additional-minimal.schema\";\n\n/**\n * Partial EncounterAdditional schema (based on minimal, all optional).\n */\nexport const encounterAdditionalPartialSchema = encounterAdditionalMinimalSchema.partial();\n\nexport type EncounterAdditionalPartial = z.infer<typeof encounterAdditionalPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport mongoose, { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { baseSchema } from \"../../commons/base-schema\";\nimport { codedConceptSchema, timestampSchema } from \"../../commons\";\n\n/**\n * Current schema version for the MedicalRecord model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const MEDICAL_RECORD_SCHEMA_VERSION = 1;\n\nconst ALLOWED_SYSTEM = {\n type: [\"crn:medical-record:type\"],\n identifiers: [\"crn:identifier\"],\n statuses: [\"crn:status:system\", \"crn:status:medical-record\"],\n component: {\n label: [\"crn:medical-record:label\"],\n },\n};\n\nconst medicalRecordComponentSchema = z.object({\n label: codedConceptSchema.refine(\n (data) => ALLOWED_SYSTEM.component.label.includes(data.system),\n { message: \"Invalid CodedConcept: System are not allowed\" },\n ),\n value: z.any(),\n recorded_by: z.string(),\n recorded_at: timestampSchema,\n validated: z.boolean().default(false),\n validated_at: timestampSchema,\n});\n\nexport const medicalRecordSchema = baseSchema(\n MEDICAL_RECORD_SCHEMA_VERSION,\n).extend({\n type: codedConceptSchema.refine(\n (data) => ALLOWED_SYSTEM.type.includes(data.system),\n { message: \"Invalid CodedConcept: System are not allowed\" },\n ),\n identifiers: z.array(\n codedConceptSchema.refine(\n (data) => ALLOWED_SYSTEM.identifiers.includes(data.system),\n { message: \"Invalid CodedConcept: System are not allowed\" },\n ),\n ),\n statuses: z.array(\n codedConceptSchema.refine(\n (data) => ALLOWED_SYSTEM.statuses.includes(data.system),\n { message: \"Invalid CodedConcept: System are not allowed\" },\n ),\n ),\n record_custodian_id: z.string(),\n locked_at: timestampSchema,\n components: z.array(medicalRecordComponentSchema),\n});\n\nexport type MedicalRecord = z.infer<typeof medicalRecordSchema>;\n\nexport const MedicalRecordMongooseSchema: MongooseSchema =\n toMongooseSchema(medicalRecordSchema);\nexport type MedicalRecordDocument = InferDocument<typeof medicalRecordSchema>;\n\nconst MedicalRecordModelName = \"medical_records\";\nexport const MedicalRecordModel = mongoose.models[MedicalRecordModelName] || model(MedicalRecordModelName, MedicalRecordMongooseSchema);\n","import { z } from \"zod\";\nimport { medicalRecordSchema, type MedicalRecord } from \"./medical-record.schema\";\n\n/**\n * Minimal MedicalRecord schema (omits server-generated fields).\n */\nexport const medicalRecordMinimalSchema = medicalRecordSchema.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 MedicalRecordMinimal = z.infer<typeof medicalRecordMinimalSchema>;\n","import { z } from \"zod\";\nimport { medicalRecordMinimalSchema, type MedicalRecordMinimal } from \"./medical-record-minimal.schema\";\n\n/**\n * Partial MedicalRecord schema (based on minimal, all optional).\n */\nexport const medicalRecordPartialSchema = medicalRecordMinimalSchema.partial();\n\nexport type MedicalRecordPartial = z.infer<typeof medicalRecordPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport mongoose, { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { baseSchema } from \"../../commons/base-schema\";\nimport { objectIdSchema } from \"../../commons\";\n\n/**\n * Current schema version for the Note model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const NOTE_SCHEMA_VERSION = 1;\n\nexport const noteSchema = baseSchema(NOTE_SCHEMA_VERSION).extend({\n scope: z.string(),\n reference_id: objectIdSchema,\n note: z.string(),\n});\n\nexport type Note = z.infer<typeof noteSchema>;\n\nexport const NoteMongooseSchema: MongooseSchema = toMongooseSchema(noteSchema);\nexport type NoteDocument = InferDocument<typeof noteSchema>;\n\nconst NoteModelName = \"notes\";\nexport const NoteModel = mongoose.models[NoteModelName] || model(NoteModelName, NoteMongooseSchema);\n","import { z } from \"zod\";\nimport { noteSchema, type Note } from \"./note.schema\";\n\n/**\n * Minimal Note schema (omits server-generated fields).\n */\nexport const noteMinimalSchema = noteSchema.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 NoteMinimal = z.infer<typeof noteMinimalSchema>;\n","import { z } from \"zod\";\nimport { noteMinimalSchema, type NoteMinimal } from \"./note-minimal.schema\";\n\n/**\n * Partial Note schema (based on minimal, all optional).\n */\nexport const notePartialSchema = noteMinimalSchema.partial();\n\nexport type NotePartial = z.infer<typeof notePartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport { objectIdSchema } from \"../../commons/object-id\";\nimport mongoose, { 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 = mongoose.models[UserModelName] || 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 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 mongoose, { 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\";\nimport { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(ASSIGNMENT_SCHEMA_VERSION).extend({\n facility_id: objectIdSchema,\n type: codedConceptSchema,\n for: z.string().min(1, { message: \"for is required\" }),\n assigned_to: z\n .array(\n z.string().min(1, {\n message: \"assigned_to is required\",\n }),\n )\n .min(1),\n});\n\nexport type Assignment = z.infer<typeof assignmentSchema>;\n\nexport const AssignmentMongooseSchema: MongooseSchema =\n toMongooseSchema(assignmentSchema);\nexport type AssignmentDocument = InferDocument<typeof assignmentSchema>;\n\nconst AssignmentModelName = \"assignments\";\nexport const AssignmentModel = mongoose.models[AssignmentModelName] || 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 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 mongoose, { 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\";\nimport { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(DEPARTMENT_SCHEMA_VERSION).extend({\n facility_id: objectIdSchema,\n name: z.string().min(1, { message: \"name is required\" }),\n type: codedConceptSchema,\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 = mongoose.models[DepartmentModelName] || 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 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 mongoose, { 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 = mongoose.models[FacilityModelName] || model(FacilityModelName, FacilityMongooseSchema);\n","import { z } from \"zod\";\nimport {\n objectIdSchema,\n settingOptionSchema,\n timestampSchema,\n} from \"../../commons\";\nimport { validateCode } from \"../../registry\";\n\nconst FACILITY_SETTING_FIELDS = [\n \"branding_logo\",\n \"satusehat_org_id\",\n \"satusehat_client_id\",\n \"satusehat_client_secret\",\n \"queue_number_length\",\n \"queue_number_separator\",\n \"queue_call_threshold\",\n \"queue_call_priority\",\n \"kiosk_announcements\",\n \"kiosk_gallery\",\n \"kiosk_faq\",\n \"kiosk_services\",\n \"payer_types\",\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\n .number()\n .int()\n .positive()\n .default(FACILITY_SETTINGS_SCHEMA_VERSION),\n});\n\nexport const facilitySettingsKVSchema = z.object({\n branding_logo: z.string().nullable(),\n satusehat_org_id: z.string().nullable(),\n satusehat_client_id: z.string().nullable(),\n satusehat_client_secret: z.string().nullable(),\n queue_number_length: z.number().int().positive().nullable().default(3),\n queue_number_separator: z.string().nullable(),\n queue_call_priority: z\n .string()\n .default(\"sequence\")\n .refine((data) => validateCode(\"crn:queue:priority\", data), {\n message:\n \"Invalid CodedConcept: system/value combination not found in registry\",\n }),\n queue_call_threshold: z.number().int().positive().default(3),\n kiosk_announcements: z.string().array(),\n kiosk_gallery: z.url().array(),\n kiosk_faq: z.object({ key: z.string(), value: z.string() }).array(),\n kiosk_services: z.object({ key: z.string(), value: z.string() }).array(),\n payer_types: z.string().array(),\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 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 mongoose, { 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(LOCATION_SCHEMA_VERSION).extend({\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});\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 = mongoose.models[LocationModelName] || 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 schema_version: 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 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 mongoose, { 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 = mongoose.models[MemberModelName] || 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 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 mongoose, { 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 = mongoose.models[OrganizationModelName] || 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 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 { objectIdSchema } from \"../../commons/object-id\";\nimport mongoose, { 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(PATIENT_ADDITIONAL_SCHEMA_VERSION).extend({\n patient_id: objectIdSchema,\n type: codedConceptSchema,\n data: z.union([z.object({}), z.array(z.any())]),\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 = mongoose.models[PatientAdditionalModelName] || model(PatientAdditionalModelName, PatientAdditionalMongooseSchema);\n","import { z } from \"zod\";\nimport { patientAdditionalSchema, type PatientAdditional } from \"./patient-additional.schema\";\n\n/**\n * Minimal PatientAdditional 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 PatientAdditional schema (based on minimal, all 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 mongoose, { 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(STAFF_SCHEMA_VERSION).extend({\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});\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 = mongoose.models[StaffModelName] || 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 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 mongoose, { 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(UNIT_SCHEMA_VERSION).extend({\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});\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 = mongoose.models[UnitModelName] || 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 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 mongoose, { 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(\n PRACTITIONER_SCHEDULE_SCHEMA_VERSION,\n).extend({\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});\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 = mongoose.models[PractitionerScheduleModelName] || model(PractitionerScheduleModelName, PractitionerScheduleMongooseSchema);\n","import { z } from \"zod\";\nimport { practitionerScheduleSchema, type PractitionerSchedule } from \"./practitioner-schedule.schema\";\n\n/**\n * Minimal PractitionerSchedule 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 PractitionerSchedule schema (based on minimal, all 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 mongoose, { 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(\n PRACTITIONER_SESSION_SCHEMA_VERSION,\n).extend({\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});\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 = mongoose.models[PractitionerSessionModelName] || model(PractitionerSessionModelName, PractitionerSessionMongooseSchema);\n","import { z } from \"zod\";\nimport { practitionerSessionSchema, type PractitionerSession } from \"./practitioner-session.schema\";\n\n/**\n * Minimal PractitionerSession 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 PractitionerSession schema (based on minimal, all 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 mongoose, { model, type Schema as MongooseSchema, type Model as MongooseModel } from \"mongoose\";\nimport type { InferDocument } from \"@nullix/zod-mongoose\";\nimport { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(KSM_SCHEMA_VERSION).extend({\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});\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 = mongoose.models[KsmModelName] || 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 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 mongoose, { 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(PAYER_SCHEMA_VERSION).extend({\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});\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 = mongoose.models[PayerModelName] || 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 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 mongoose, { 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(QUEUE_SCHEMA_VERSION).extend({\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});\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 = mongoose.models[QueueModelName] || model(QueueModelName, QueueMongooseSchema);\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 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 mongoose, { 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 { baseSchema } from \"../../commons/base-schema\";\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 = baseSchema(QUEUE_EVENT_LOG_SCHEMA_VERSION).extend({\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});\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 = mongoose.models[QueueEventLogModelName] || model(QueueEventLogModelName, QueueEventLogMongooseSchema);\n","import { z } from \"zod\";\nimport { queueEventLogSchema, type QueueEventLog } from \"./queue-event-log.schema\";\n\n/**\n * Minimal QueueEventLog 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 QueueEventLog schema (based on minimal, all 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 mongoose, { 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 { baseSchemaWithExpiredAt } from \"../../commons/base-schema-expired-at\";\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 = baseSchemaWithExpiredAt(\n QUEUE_NUMBER_SCHEMA_VERSION,\n).extend({\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});\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 = mongoose.models[QueueNumberModelName] || model(QueueNumberModelName, QueueNumberMongooseSchema);\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 QueueNumber 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 QueueNumber schema (based on minimal, all optional).\n */\nexport const queueNumberPartialSchema = queueNumberMinimalSchema.partial();\n\nexport type QueueNumberPartial = z.infer<typeof queueNumberPartialSchema>;\n","import { z } from \"zod\";\nimport { toMongooseSchema } from \"@nullix/zod-mongoose\";\nimport mongoose, { 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\";\nimport { baseSchema } from \"../../commons/base-schema\";\n\n/**\n * Current schema version for the Article model.\n * Use this constant instead of a literal when setting schema_version.\n */\nexport const ARTICLE_SCHEMA_VERSION = 1;\n\nexport const articleSchema = baseSchema(ARTICLE_SCHEMA_VERSION).extend({\n facility_id: objectIdSchema,\n title: z.string().min(1, { message: \"for is required\" }),\n banner: z.url(),\n body: z.string(),\n status: codedConceptSchema,\n});\n\nexport type Article = z.infer<typeof articleSchema>;\n\nexport const ArticleMongooseSchema: MongooseSchema =\n toMongooseSchema(articleSchema);\nexport type ArticleDocument = InferDocument<typeof articleSchema>;\n\nconst ArticleModelName = \"articles\";\nexport const ArticleModel = mongoose.models[ArticleModelName] || model(ArticleModelName, ArticleMongooseSchema);\n","import { z } from \"zod\";\nimport { articleSchema, type Article } from \"./article.schema\";\n\n/**\n * Minimal Article schema (omits server-generated fields).\n */\nexport const articleMinimalSchema = articleSchema.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 ArticleMinimal = z.infer<typeof articleMinimalSchema>;\n","import { z } from \"zod\";\nimport { articleMinimalSchema, type ArticleMinimal } from \"./article-minimal.schema\";\n\n/**\n * Partial Article schema (based on minimal, all optional).\n */\nexport const articlePartialSchema = articleMinimalSchema.partial();\n\nexport type ArticlePartial = z.infer<typeof articlePartialSchema>;\n"]}
|