@fuego-systems/core 0.1.15 → 0.1.17

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.
@@ -9,6 +9,8 @@ export declare const EGES_EQUIPO_SYSTEM = "https://www.cdrossi.com/eges/equipo";
9
9
  export declare const EGES_TURNO_SYSTEM = "https://www.cdrossi.com/eges/turno";
10
10
  export declare const EGES_PRACTICA_SYSTEM = "https://www.cdrossi.com/eges/practica";
11
11
  export declare const EGES_PRESTACION_SYSTEM = "https://www.cdrossi.com/eges/prestacion";
12
+ export declare const EGES_OBRA_SOCIAL_SYSTEM = "https://www.cdrossi.com/eges/obra-social";
13
+ export declare const EGES_OBRA_SOCIAL_PLAN_SYSTEM = "https://www.cdrossi.com/eges/obra-social-plan";
12
14
  export declare const EGES_CONDICION_RESPUESTA_SYSTEM = "https://www.cdrossi.com/eges/condicion-respuesta";
13
15
  export declare const RENAPER_BASE = "https://www.argentina.gob.ar/interior/renaper";
14
16
  export declare const MATRICULA_NACIONAL_SYSTEM = "https://www.argentina.gob.ar/interior/renaper/matricula-nacional";
@@ -27,6 +29,7 @@ export declare const MIGRATE_DEVICE_TASK_CODE = "eges-migrate-device";
27
29
  export declare const MIGRATE_SITE_TASK_CODE = "eges-migrate-site";
28
30
  export declare const MIGRATE_SERVICE_TASK_CODE = "eges-migrate-service";
29
31
  export declare const MIGRATE_APPOINTMENT_TASK_CODE = "eges-migrate-appointment";
32
+ export declare const MIGRATE_INSURER_TASK_CODE = "eges-migrate-insurer";
30
33
  export declare const REVIEW_APPOINTMENT_TASK_CODE = "review-appointment";
31
34
  export declare const SYNCHRONIZE_APPOINTMENT_TASK_CODE = "synchronize-appointment";
32
35
  /**
@@ -192,6 +195,37 @@ export declare const ORG_TYPE_PAY_CODE = "pay";
192
195
  export declare const ORG_TYPE_PROV_CODE = "prov";
193
196
  /** Identifier system for InsurancePlan resources (specific plan products) */
194
197
  export declare const INSURANCE_PLAN_IDENTIFIER_SYSTEM = "https://www.cdrossi.com/fhir/CodeSystem/insurance-plans";
198
+ /**
199
+ * Canonical `url` of the singleton ConceptMap that holds the parametrized
200
+ * práctica → práctica mapping rules (patient insurance / age / sex). The
201
+ * resolver fetches it by this url; there is at most one per project.
202
+ */
203
+ export declare const PRACTICA_MAPPING_CONCEPT_MAP_URL = "https://www.cdrossi.com/fhir/ConceptMap/practica-mapping";
204
+ /**
205
+ * Tag applied to the práctica mapping ConceptMap for discovery via
206
+ * `ConceptMap?_tag=<BILLING_CODES_TAG_SYSTEM>|<PRACTICA_MAPPING_TAG_CODE>`
207
+ * (same tag system as the billing CodeSystems).
208
+ */
209
+ export declare const PRACTICA_MAPPING_TAG_CODE = "practica-mapping";
210
+ /**
211
+ * Complex extension on each ConceptMap `element.target[]` carrying the
212
+ * conditions under which the mapping applies. Sub-extensions (all optional,
213
+ * ANDed together):
214
+ * - `insurance`: valueReference → InsurancePlan (plan tier) or Organization
215
+ * type `pay` (obra social tier)
216
+ * - `ageRange`: valueRange — patient age in whole years, bounds inclusive
217
+ * - `sex`: valueCode — FHIR administrative gender
218
+ */
219
+ export declare const PRACTICA_MAPPING_CONDITION_EXTENSION_URL = "https://www.cdrossi.com/fhir/StructureDefinition/practica-mapping-condition";
220
+ /**
221
+ * Extension on the `$resolve-protocol` response Bundle's **meta** carrying
222
+ * the JSON-serialized `EffectivePracticaSet` (valueString) when the caller
223
+ * sent patient context. The operation's registered output type is `Bundle`,
224
+ * so the effective set rides on the Bundle rather than a separate Parameters
225
+ * response — and since Bundle is not a DomainResource (no top-level
226
+ * `extension` element), it lives on `Bundle.meta.extension`.
227
+ */
228
+ export declare const EFFECTIVE_PRACTICA_SET_EXTENSION_URL = "https://www.cdrossi.com/fhir/StructureDefinition/effective-practica-set";
195
229
  /**
196
230
  * Tag system applied to every billing-codes CodeSystem resource,
197
231
  * enabling dynamic discovery via `CodeSystem?_tag=<system>|<code>`.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/constants.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HL7_IMPORT_TASK_OUTPUT_SYSTEM = exports.HL7_IMPORT_TASK_INPUT_SYSTEM = exports.HL7_IMPORT_APPOINTMENT_TASK_CODE = exports.HL7_IMPORT_TASK_SYSTEM = exports.INVITE_TASK_INPUT_MEMBERSHIP_REF = exports.SEND_USER_INVITE_EMAIL_TASK_CODE = exports.EMAIL_TASK_OUTPUT_TEXT = exports.EMAIL_TASK_OUTPUT_HTML = exports.EMAIL_TASK_OUTPUT_SUBJECT = exports.EMAIL_TASK_OUTPUT_APPOINTMENT_COUNT = exports.EMAIL_TASK_OUTPUT_RECIPIENT = exports.EMAIL_TASK_INPUT_TIMEZONE = exports.EMAIL_TASK_INPUT_PATIENT_REF = exports.EMAIL_TASK_INPUT_RECIPIENT_EMAIL = exports.EMAIL_TASK_INPUT_SESSION_GROUP_ID = exports.SEND_APPOINTMENT_CONFIRMATION_EMAIL_TASK_CODE = exports.TASK_BUSINESS_STATUS_REVIEWED_TOKEN = exports.TASK_BUSINESS_STATUS_REVIEWED_CODE = exports.TASK_BUSINESS_STATUS_SYSTEM = exports.SYNCHRONIZE_APPOINTMENT_TASK_CODE = exports.REVIEW_APPOINTMENT_TASK_CODE = exports.MIGRATE_APPOINTMENT_TASK_CODE = exports.MIGRATE_SERVICE_TASK_CODE = exports.MIGRATE_SITE_TASK_CODE = exports.MIGRATE_DEVICE_TASK_CODE = exports.MIGRATE_PATIENT_TASK_CODE = exports.MIGRATE_PRACTITIONER_TASK_CODE = exports.MIGRATE_TASK_OUTPUT_SYSTEM = exports.MIGRATE_TASK_INPUT_SYSTEM = exports.MIGRATE_TASK_SYSTEM = exports.PRACTITIONER_ROLE_REFERRING_CODE = exports.PRACTITIONER_ROLE_SYSTEM = exports.SERVICE_TYPE_SYSTEM = exports.REQUIRES_PRACTITIONER_EXTENSION_URL = exports.SCHEDULING_PARAMETERS_EXTENSION_URL = exports.MATRICULA_PROVINCIAL_SYSTEM = exports.MATRICULA_NACIONAL_SYSTEM = exports.RENAPER_BASE = exports.EGES_CONDICION_RESPUESTA_SYSTEM = exports.EGES_PRESTACION_SYSTEM = exports.EGES_PRACTICA_SYSTEM = exports.EGES_TURNO_SYSTEM = exports.EGES_EQUIPO_SYSTEM = exports.EGES_MEDICO_ASOCIACION_SYSTEM = exports.EGES_MEDICO_SYSTEM = exports.EGES_SUCURSAL_SYSTEM = exports.EGES_DOCUMENTO_SYSTEM = exports.EGES_PACIENTE_SYSTEM = exports.EGES_SYSTEM_BASE = exports.FHIR_BASE = void 0;
4
- exports.BILLING_CID_CONTEXT_CODE = exports.BILLING_CID_CONTEXT_SYSTEM = exports.BILLING_CID_PD_IDENTIFIER_SYSTEM = exports.BILLING_CODES_ORG_EXTENSION = exports.BILLING_CODES_TAG_CODE = exports.BILLING_CODES_TAG_SYSTEM = exports.INSURANCE_PLAN_IDENTIFIER_SYSTEM = exports.ORG_TYPE_PROV_CODE = exports.ORG_TYPE_PAY_CODE = exports.ORG_TYPE_SYSTEM = exports.INSURER_IDENTIFIER_SYSTEM = exports.COMMUNICATION_EMAIL_KEY_SYSTEM = exports.PRACTITIONER_IS_TECHNICIAN_EXTENSION_URL = exports.HS_SEARCH_PROTOCOL_ALIASES_EXTENSION_URL = exports.HS_SEARCH_ALIASES_EXTENSION_URL = exports.PD_HEALTHCARE_SERVICE_EXTENSION_URL = exports.HS_BILLING_EXTENSION_URL = exports.HS_PROTOCOL_EXTENSION_URL = exports.SPECIALITY_SYSTEM = exports.SERVICE_CATEGORY_SYSTEM = exports.SERVICE_CODES_SYSTEM = exports.PD_TYPE_PROTOCOL_GROUP = exports.PD_TYPE_SYSTEM = exports.ORDER_METADATA_EXTENSION_URL = exports.MEDICAL_ORDER_DOCUMENT_CODE = exports.MEDICAL_ORDER_DOCUMENT_SYSTEM = exports.HS_ADDON_SYSTEM = exports.HS_ACTION_SYSTEM = exports.SERVICE_REQUEST_GROUP_SYSTEM = void 0;
3
+ exports.HL7_IMPORT_TASK_SYSTEM = exports.INVITE_TASK_INPUT_MEMBERSHIP_REF = exports.SEND_USER_INVITE_EMAIL_TASK_CODE = exports.EMAIL_TASK_OUTPUT_TEXT = exports.EMAIL_TASK_OUTPUT_HTML = exports.EMAIL_TASK_OUTPUT_SUBJECT = exports.EMAIL_TASK_OUTPUT_APPOINTMENT_COUNT = exports.EMAIL_TASK_OUTPUT_RECIPIENT = exports.EMAIL_TASK_INPUT_TIMEZONE = exports.EMAIL_TASK_INPUT_PATIENT_REF = exports.EMAIL_TASK_INPUT_RECIPIENT_EMAIL = exports.EMAIL_TASK_INPUT_SESSION_GROUP_ID = exports.SEND_APPOINTMENT_CONFIRMATION_EMAIL_TASK_CODE = exports.TASK_BUSINESS_STATUS_REVIEWED_TOKEN = exports.TASK_BUSINESS_STATUS_REVIEWED_CODE = exports.TASK_BUSINESS_STATUS_SYSTEM = exports.SYNCHRONIZE_APPOINTMENT_TASK_CODE = exports.REVIEW_APPOINTMENT_TASK_CODE = exports.MIGRATE_INSURER_TASK_CODE = exports.MIGRATE_APPOINTMENT_TASK_CODE = exports.MIGRATE_SERVICE_TASK_CODE = exports.MIGRATE_SITE_TASK_CODE = exports.MIGRATE_DEVICE_TASK_CODE = exports.MIGRATE_PATIENT_TASK_CODE = exports.MIGRATE_PRACTITIONER_TASK_CODE = exports.MIGRATE_TASK_OUTPUT_SYSTEM = exports.MIGRATE_TASK_INPUT_SYSTEM = exports.MIGRATE_TASK_SYSTEM = exports.PRACTITIONER_ROLE_REFERRING_CODE = exports.PRACTITIONER_ROLE_SYSTEM = exports.SERVICE_TYPE_SYSTEM = exports.REQUIRES_PRACTITIONER_EXTENSION_URL = exports.SCHEDULING_PARAMETERS_EXTENSION_URL = exports.MATRICULA_PROVINCIAL_SYSTEM = exports.MATRICULA_NACIONAL_SYSTEM = exports.RENAPER_BASE = exports.EGES_CONDICION_RESPUESTA_SYSTEM = exports.EGES_OBRA_SOCIAL_PLAN_SYSTEM = exports.EGES_OBRA_SOCIAL_SYSTEM = exports.EGES_PRESTACION_SYSTEM = exports.EGES_PRACTICA_SYSTEM = exports.EGES_TURNO_SYSTEM = exports.EGES_EQUIPO_SYSTEM = exports.EGES_MEDICO_ASOCIACION_SYSTEM = exports.EGES_MEDICO_SYSTEM = exports.EGES_SUCURSAL_SYSTEM = exports.EGES_DOCUMENTO_SYSTEM = exports.EGES_PACIENTE_SYSTEM = exports.EGES_SYSTEM_BASE = exports.FHIR_BASE = void 0;
4
+ exports.BILLING_CID_CONTEXT_CODE = exports.BILLING_CID_CONTEXT_SYSTEM = exports.BILLING_CID_PD_IDENTIFIER_SYSTEM = exports.BILLING_CODES_ORG_EXTENSION = exports.BILLING_CODES_TAG_CODE = exports.BILLING_CODES_TAG_SYSTEM = exports.EFFECTIVE_PRACTICA_SET_EXTENSION_URL = exports.PRACTICA_MAPPING_CONDITION_EXTENSION_URL = exports.PRACTICA_MAPPING_TAG_CODE = exports.PRACTICA_MAPPING_CONCEPT_MAP_URL = exports.INSURANCE_PLAN_IDENTIFIER_SYSTEM = exports.ORG_TYPE_PROV_CODE = exports.ORG_TYPE_PAY_CODE = exports.ORG_TYPE_SYSTEM = exports.INSURER_IDENTIFIER_SYSTEM = exports.COMMUNICATION_EMAIL_KEY_SYSTEM = exports.PRACTITIONER_IS_TECHNICIAN_EXTENSION_URL = exports.HS_SEARCH_PROTOCOL_ALIASES_EXTENSION_URL = exports.HS_SEARCH_ALIASES_EXTENSION_URL = exports.PD_HEALTHCARE_SERVICE_EXTENSION_URL = exports.HS_BILLING_EXTENSION_URL = exports.HS_PROTOCOL_EXTENSION_URL = exports.SPECIALITY_SYSTEM = exports.SERVICE_CATEGORY_SYSTEM = exports.SERVICE_CODES_SYSTEM = exports.PD_TYPE_PROTOCOL_GROUP = exports.PD_TYPE_SYSTEM = exports.ORDER_METADATA_EXTENSION_URL = exports.MEDICAL_ORDER_DOCUMENT_CODE = exports.MEDICAL_ORDER_DOCUMENT_SYSTEM = exports.HS_ADDON_SYSTEM = exports.HS_ACTION_SYSTEM = exports.SERVICE_REQUEST_GROUP_SYSTEM = exports.HL7_IMPORT_TASK_OUTPUT_SYSTEM = exports.HL7_IMPORT_TASK_INPUT_SYSTEM = exports.HL7_IMPORT_APPOINTMENT_TASK_CODE = void 0;
5
5
  exports.FHIR_BASE = 'https://www.cdrossi.com/fhir';
6
6
  exports.EGES_SYSTEM_BASE = 'https://www.cdrossi.com/eges';
7
7
  exports.EGES_PACIENTE_SYSTEM = `${exports.EGES_SYSTEM_BASE}/paciente`;
@@ -13,6 +13,8 @@ exports.EGES_EQUIPO_SYSTEM = `${exports.EGES_SYSTEM_BASE}/equipo`;
13
13
  exports.EGES_TURNO_SYSTEM = `${exports.EGES_SYSTEM_BASE}/turno`;
14
14
  exports.EGES_PRACTICA_SYSTEM = `${exports.EGES_SYSTEM_BASE}/practica`;
15
15
  exports.EGES_PRESTACION_SYSTEM = `${exports.EGES_SYSTEM_BASE}/prestacion`;
16
+ exports.EGES_OBRA_SOCIAL_SYSTEM = `${exports.EGES_SYSTEM_BASE}/obra-social`;
17
+ exports.EGES_OBRA_SOCIAL_PLAN_SYSTEM = `${exports.EGES_SYSTEM_BASE}/obra-social-plan`;
16
18
  exports.EGES_CONDICION_RESPUESTA_SYSTEM = `${exports.EGES_SYSTEM_BASE}/condicion-respuesta`;
17
19
  exports.RENAPER_BASE = 'https://www.argentina.gob.ar/interior/renaper';
18
20
  exports.MATRICULA_NACIONAL_SYSTEM = `${exports.RENAPER_BASE}/matricula-nacional`;
@@ -32,6 +34,7 @@ exports.MIGRATE_DEVICE_TASK_CODE = `${MIGRATE_TASK_BASE}-device`;
32
34
  exports.MIGRATE_SITE_TASK_CODE = `${MIGRATE_TASK_BASE}-site`;
33
35
  exports.MIGRATE_SERVICE_TASK_CODE = `${MIGRATE_TASK_BASE}-service`;
34
36
  exports.MIGRATE_APPOINTMENT_TASK_CODE = `${MIGRATE_TASK_BASE}-appointment`;
37
+ exports.MIGRATE_INSURER_TASK_CODE = `${MIGRATE_TASK_BASE}-insurer`;
35
38
  exports.REVIEW_APPOINTMENT_TASK_CODE = 'review-appointment';
36
39
  exports.SYNCHRONIZE_APPOINTMENT_TASK_CODE = 'synchronize-appointment';
37
40
  /**
@@ -205,6 +208,38 @@ exports.ORG_TYPE_PROV_CODE = 'prov';
205
208
  // ─── InsurancePlan ────────────────────────────────────────────────────────────
206
209
  /** Identifier system for InsurancePlan resources (specific plan products) */
207
210
  exports.INSURANCE_PLAN_IDENTIFIER_SYSTEM = `${exports.FHIR_BASE}/CodeSystem/insurance-plans`;
211
+ // ─── Práctica mapping registry (#202) ────────────────────────────────────────
212
+ /**
213
+ * Canonical `url` of the singleton ConceptMap that holds the parametrized
214
+ * práctica → práctica mapping rules (patient insurance / age / sex). The
215
+ * resolver fetches it by this url; there is at most one per project.
216
+ */
217
+ exports.PRACTICA_MAPPING_CONCEPT_MAP_URL = `${exports.FHIR_BASE}/ConceptMap/practica-mapping`;
218
+ /**
219
+ * Tag applied to the práctica mapping ConceptMap for discovery via
220
+ * `ConceptMap?_tag=<BILLING_CODES_TAG_SYSTEM>|<PRACTICA_MAPPING_TAG_CODE>`
221
+ * (same tag system as the billing CodeSystems).
222
+ */
223
+ exports.PRACTICA_MAPPING_TAG_CODE = 'practica-mapping';
224
+ /**
225
+ * Complex extension on each ConceptMap `element.target[]` carrying the
226
+ * conditions under which the mapping applies. Sub-extensions (all optional,
227
+ * ANDed together):
228
+ * - `insurance`: valueReference → InsurancePlan (plan tier) or Organization
229
+ * type `pay` (obra social tier)
230
+ * - `ageRange`: valueRange — patient age in whole years, bounds inclusive
231
+ * - `sex`: valueCode — FHIR administrative gender
232
+ */
233
+ exports.PRACTICA_MAPPING_CONDITION_EXTENSION_URL = `${exports.FHIR_BASE}/StructureDefinition/practica-mapping-condition`;
234
+ /**
235
+ * Extension on the `$resolve-protocol` response Bundle's **meta** carrying
236
+ * the JSON-serialized `EffectivePracticaSet` (valueString) when the caller
237
+ * sent patient context. The operation's registered output type is `Bundle`,
238
+ * so the effective set rides on the Bundle rather than a separate Parameters
239
+ * response — and since Bundle is not a DomainResource (no top-level
240
+ * `extension` element), it lives on `Bundle.meta.extension`.
241
+ */
242
+ exports.EFFECTIVE_PRACTICA_SET_EXTENSION_URL = `${exports.FHIR_BASE}/StructureDefinition/effective-practica-set`;
208
243
  // ─── Billing CodeSystem discovery tag ────────────────────────────────────────
209
244
  /**
210
245
  * Tag system applied to every billing-codes CodeSystem resource,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["export const FHIR_BASE = 'https://www.cdrossi.com/fhir'\nexport const EGES_SYSTEM_BASE = 'https://www.cdrossi.com/eges'\n\nexport const EGES_PACIENTE_SYSTEM = `${EGES_SYSTEM_BASE}/paciente`\nexport const EGES_DOCUMENTO_SYSTEM = `${EGES_SYSTEM_BASE}/documentos`\nexport const EGES_SUCURSAL_SYSTEM = `${EGES_SYSTEM_BASE}/sucursal`\nexport const EGES_MEDICO_SYSTEM = `${EGES_SYSTEM_BASE}/medico`\nexport const EGES_MEDICO_ASOCIACION_SYSTEM = `${EGES_SYSTEM_BASE}/medico-asociacion`\nexport const EGES_EQUIPO_SYSTEM = `${EGES_SYSTEM_BASE}/equipo`\nexport const EGES_TURNO_SYSTEM = `${EGES_SYSTEM_BASE}/turno`\nexport const EGES_PRACTICA_SYSTEM = `${EGES_SYSTEM_BASE}/practica`\nexport const EGES_PRESTACION_SYSTEM = `${EGES_SYSTEM_BASE}/prestacion`\nexport const EGES_CONDICION_RESPUESTA_SYSTEM = `${EGES_SYSTEM_BASE}/condicion-respuesta`\nexport const RENAPER_BASE = 'https://www.argentina.gob.ar/interior/renaper'\nexport const MATRICULA_NACIONAL_SYSTEM = `${RENAPER_BASE}/matricula-nacional`\nexport const MATRICULA_PROVINCIAL_SYSTEM = `${RENAPER_BASE}/matricula-provincial`\n\nexport const SCHEDULING_PARAMETERS_EXTENSION_URL = 'http://medplum.com/fhir/StructureDefinition/scheduling-parameters'\nexport const REQUIRES_PRACTITIONER_EXTENSION_URL = `${FHIR_BASE}/requires-practitioner`\nexport const SERVICE_TYPE_SYSTEM = `${FHIR_BASE}/service-type`\n\nexport const PRACTITIONER_ROLE_SYSTEM = `${FHIR_BASE}/CodeSystem/practitioner-role`\nexport const PRACTITIONER_ROLE_REFERRING_CODE = 'referring'\n\nconst MIGRATE_TASK_BASE = 'eges-migrate'\nexport const MIGRATE_TASK_SYSTEM = `${FHIR_BASE}/tasks`\nexport const MIGRATE_TASK_INPUT_SYSTEM = `${FHIR_BASE}/task-inputs`\nexport const MIGRATE_TASK_OUTPUT_SYSTEM = `${FHIR_BASE}/task-outputs`\nexport const MIGRATE_PRACTITIONER_TASK_CODE = `${MIGRATE_TASK_BASE}-practitioner`\nexport const MIGRATE_PATIENT_TASK_CODE = `${MIGRATE_TASK_BASE}-patient`\nexport const MIGRATE_DEVICE_TASK_CODE = `${MIGRATE_TASK_BASE}-device`\nexport const MIGRATE_SITE_TASK_CODE = `${MIGRATE_TASK_BASE}-site`\nexport const MIGRATE_SERVICE_TASK_CODE = `${MIGRATE_TASK_BASE}-service`\nexport const MIGRATE_APPOINTMENT_TASK_CODE = `${MIGRATE_TASK_BASE}-appointment`\nexport const REVIEW_APPOINTMENT_TASK_CODE = 'review-appointment'\nexport const SYNCHRONIZE_APPOINTMENT_TASK_CODE = 'synchronize-appointment'\n\n/**\n * Coding system for `Task.businessStatus` values used by the Rossi admin\n * review workflow. Distinct from `Task.status` (FHIR lifecycle), which is\n * driven by the booking pipeline. `businessStatus` captures staff-side\n * review state that is independent of whether the appointment has been\n * confirmed in EGES.\n */\nexport const TASK_BUSINESS_STATUS_SYSTEM = `${FHIR_BASE}/CodeSystem/task-business-status`\n\n/**\n * `Task.businessStatus.coding[].code` value set by the reception role when\n * marking a review as seen/checked, without confirming the underlying\n * appointment.\n */\nexport const TASK_BUSINESS_STATUS_REVIEWED_CODE = 'reviewed'\n\n/** `system|code` search token for `Task?business-status` filters on the reviewed state. */\nexport const TASK_BUSINESS_STATUS_REVIEWED_TOKEN =\n `${TASK_BUSINESS_STATUS_SYSTEM}|${TASK_BUSINESS_STATUS_REVIEWED_CODE}`\n\n/**\n * Task.code value identifying a \"send appointment confirmation email\" job. The\n * code is fully self-describing (not an `eges-migrate-*` migration code) — these\n * Tasks are produced by the appointments-portal $create flow rather than the\n * EGES migration pipeline.\n */\nexport const SEND_APPOINTMENT_CONFIRMATION_EMAIL_TASK_CODE = 'send-appointment-confirmation-email'\n\n/** Task.input code for the booking-session UUID (mirrors `ServiceRequest.requisition.value`). */\nexport const EMAIL_TASK_INPUT_SESSION_GROUP_ID = 'session-group-id'\n\n/** Task.input code for the recipient email address resolved from `Patient.telecom`. */\nexport const EMAIL_TASK_INPUT_RECIPIENT_EMAIL = 'recipient-email'\n\n/** Task.input code carrying `Patient/{id}` for the recipient's patient record. */\nexport const EMAIL_TASK_INPUT_PATIENT_REF = 'patient-ref'\n\n/** Task.input code for the optional IANA timezone used to format appointment times in the email. */\nexport const EMAIL_TASK_INPUT_TIMEZONE = 'timezone'\n\n/** Task.output code for the recipient email address that was actually used. */\nexport const EMAIL_TASK_OUTPUT_RECIPIENT = 'recipient'\n\n/** Task.output code for the count of appointments included in the email body. */\nexport const EMAIL_TASK_OUTPUT_APPOINTMENT_COUNT = 'appointment-count'\n\n/**\n * Task.output code for the rendered email subject line. Captured on the Task\n * in both success and failure paths so the rendered message can be inspected\n * locally (no SMTP/SES configured) and audited in prod (no need to hunt\n * through SES logs).\n */\nexport const EMAIL_TASK_OUTPUT_SUBJECT = 'subject'\n\n/** Task.output code for the rendered email HTML body. Companion to `subject`/`text`. */\nexport const EMAIL_TASK_OUTPUT_HTML = 'html'\n\n/** Task.output code for the rendered email plain-text body. Companion to `subject`/`html`. */\nexport const EMAIL_TASK_OUTPUT_TEXT = 'text'\n\n/**\n * Task.code for the user-invitation email. Rossi Admin invites a user\n * (`sendEmail:false` so Medplum sends nothing) and enqueues this Task; the\n * `send-user-invite-email` bot resolves the one-time set-password link from the\n * user's `UserSecurityRequest` and sends a branded invitation email.\n */\nexport const SEND_USER_INVITE_EMAIL_TASK_CODE = 'send-user-invite-email'\n\n/**\n * Task.input code carrying `ProjectMembership/{id}` for the invited member. The\n * bot resolves the recipient email, display name, and the `User` (for the\n * one-time `UserSecurityRequest`) from that membership server-side — it never\n * trusts a caller-supplied recipient, so a crafted Task cannot redirect an\n * invite secret to another address.\n */\nexport const INVITE_TASK_INPUT_MEMBERSHIP_REF = 'invite-membership-ref'\n\nexport const HL7_IMPORT_TASK_SYSTEM = 'http://example.org/CodeSystem/hl7-import-tasks'\nexport const HL7_IMPORT_APPOINTMENT_TASK_CODE = 'import-orm-o01-appointment'\nexport const HL7_IMPORT_TASK_INPUT_SYSTEM = 'http://example.org/CodeSystem/hl7-import-task-inputs'\nexport const HL7_IMPORT_TASK_OUTPUT_SYSTEM = 'http://example.org/CodeSystem/hl7-import-task-outputs'\n\n// ─── ServiceRequest ──────────────────────────────────────────────────────────\n\n/**\n * Identifier system used as `ServiceRequest.requisition.system` to correlate\n * multiple ServiceRequests (one per Appointment) authored in the same\n * appointments-portal wizard session. Maps to FHIR R4 `requisition` — \"A\n * shared identifier common to all service requests that were authorized more\n * or less simultaneously by a single author, representing the composite or\n * group identifier.\"\n */\nexport const SERVICE_REQUEST_GROUP_SYSTEM = `${FHIR_BASE}/service-request-group`\n\n/**\n * Coding system for HealthcareService action (variant) selections recorded\n * on `ServiceRequest.orderDetail[]`. The `code` is the PlanDefinition action\n * id from the contained protocol on the HealthcareService, and `display` is\n * the human-readable action label (e.g. \"Frente y perfil\").\n */\nexport const HS_ACTION_SYSTEM = `${FHIR_BASE}/CodeSystem/hs-action`\n\n/**\n * Coding system for HealthcareService addon selections recorded on\n * `ServiceRequest.orderDetail[]`. Same id/label shape as HS_ACTION_SYSTEM —\n * the distinct URI lets readers filter action vs. addons without ordering\n * assumptions on orderDetail.\n */\nexport const HS_ADDON_SYSTEM = `${FHIR_BASE}/CodeSystem/hs-addon`\n\n// ─── Medical order documents (portal requisitions) ──────────────────────────\n\n/**\n * Coding system used on `DocumentReference.type` for portal-uploaded medical\n * orders. Doubles as an identifier system so we can dedupe a `(session, order)`\n * pair across the sibling `Appointment/$create` calls the portal issues in\n * parallel for a multi-study booking.\n */\nexport const MEDICAL_ORDER_DOCUMENT_SYSTEM = `${FHIR_BASE}/CodeSystem/medical-order-document`\n\n/** `DocumentReference.type.coding[0].code` value paired with MEDICAL_ORDER_DOCUMENT_SYSTEM. */\nexport const MEDICAL_ORDER_DOCUMENT_CODE = 'medical-order'\n\n/**\n * Complex extension attached to DocumentReference. Sub-extensions carry the\n * structured OCR metadata (doctor, diagnosis, insurer, plan, patient data, …)\n * the appointments-portal parses from each scanned medical order.\n */\nexport const ORDER_METADATA_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/order-metadata`\n\n// ─── PlanDefinition type ─────────────────────────────────────────────────────\n\n/** Coding system for custom PlanDefinition types */\nexport const PD_TYPE_SYSTEM = `${FHIR_BASE}/CodeSystem/plan-definition-type`\n\n/** Type code that marks a PlanDefinition as a protocol-group (wrapping multiple concrete PDs) */\nexport const PD_TYPE_PROTOCOL_GROUP = 'protocol-group'\n\n// ─── HealthcareService model ──────────────────────────────────────────────────\n\n/** Identifier system for service codes on HealthcareService (mirrors the ServiceCodes CodeSystem URL) */\nexport const SERVICE_CODES_SYSTEM = `${FHIR_BASE}/CodeSystem/service-codes`\n\n/** Coding system for service categories on HealthcareService.category */\nexport const SERVICE_CATEGORY_SYSTEM = `${FHIR_BASE}/CodeSystem/service-category`\n\n/** Coding system for specialities on HealthcareService.specialty */\nexport const SPECIALITY_SYSTEM = `${FHIR_BASE}/CodeSystem/speciality`\n\n/** Extension URL for the mandatory PlanDefinition (clinical protocol) reference on HealthcareService */\nexport const HS_PROTOCOL_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/hs-protocol`\n\n/** Extension URL for the optional ChargeItemDefinition (billing) reference on HealthcareService */\nexport const HS_BILLING_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/hs-billing`\n\n/** Extension URL for the back-reference to the HealthcareService (study) for which this PlanDefinition is the protocol group */\nexport const PD_HEALTHCARE_SERVICE_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/pd-healthcare-service`\n\n/**\n * Extension URL for additional search aliases on HealthcareService.\n *\n * Stored as multiple same-URL extensions, each with a `valueString`.\n * These are indexed at weight 1.2 by the search indexer.\n * Using an extension instead of HealthcareService.alias[] because the local\n * FHIR profile does not permit the standard alias field.\n *\n * @example\n * { url: HS_SEARCH_ALIASES_EXTENSION_URL, valueString: \"placa de tórax\" }\n */\nexport const HS_SEARCH_ALIASES_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/hs-search-aliases`\n\n/**\n * @example\n * {\n * url: HS_SEARCH_PROTOCOL_ALIASES_EXTENSION_URL,\n * extension: [\n * { url: \"alias\", valueString: \"placa de tórax\" },\n * { url: \"protocol\", valueString: \"9a9056df-0e54-4c2a-a3ce-eb58405f1ec9\" },\n * { url: \"addon\", valueString: \"a7101b76-6f1a-4562-8689-edaee07d6b95\" },\n * { url: \"addon\", valueString: \"97b7c2ce-6f1a-4562-8689-f21a8673e009\" }\n * ]\n * }\n */\nexport const HS_SEARCH_PROTOCOL_ALIASES_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/hs-search-protocol-aliases`\n\n// ─── Practitioner ────────────────────────────────────────────────────────────\n\n/** Extension URL marking a Practitioner as a technician/operator (patient-facing surfaces must hide the name). */\nexport const PRACTITIONER_IS_TECHNICIAN_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/is-technician`\n\n// ─── Email audit trail ───────────────────────────────────────────────────────\n\n/**\n * Identifier system to dedupe Communication resources auditing sent confirmation\n * emails. The paired Provenance carries no identifier of its own (FHIR R4\n * Provenance has no `identifier` element); it is deduped by its `target`\n * reference to this Communication.\n */\nexport const COMMUNICATION_EMAIL_KEY_SYSTEM = `${FHIR_BASE}/communication-email-key`\n\n// ─── Organization (payer / insurance company) ─────────────────────────────────\n\n/** Identifier system for insurance company (payer) Organization resources */\nexport const INSURER_IDENTIFIER_SYSTEM = `${FHIR_BASE}/CodeSystem/insurers`\n\n/** HL7 organization-type code system */\nexport const ORG_TYPE_SYSTEM = 'http://terminology.hl7.org/CodeSystem/organization-type'\n\n/** organization-type code for payer/insurance */\nexport const ORG_TYPE_PAY_CODE = 'pay'\n\n/** organization-type code for healthcare provider (the main clinic) */\nexport const ORG_TYPE_PROV_CODE = 'prov'\n\n// ─── InsurancePlan ────────────────────────────────────────────────────────────\n\n/** Identifier system for InsurancePlan resources (specific plan products) */\nexport const INSURANCE_PLAN_IDENTIFIER_SYSTEM = `${FHIR_BASE}/CodeSystem/insurance-plans`\n\n// ─── Billing CodeSystem discovery tag ────────────────────────────────────────\n\n/**\n * Tag system applied to every billing-codes CodeSystem resource,\n * enabling dynamic discovery via `CodeSystem?_tag=<system>|<code>`.\n */\nexport const BILLING_CODES_TAG_SYSTEM = `${FHIR_BASE}/tags`\n\n/**\n * Tag code that marks a CodeSystem as a billing codes system.\n * Every billing CodeSystem must carry:\n * meta.tag = [{ system: BILLING_CODES_TAG_SYSTEM, code: BILLING_CODES_TAG_CODE }]\n */\nexport const BILLING_CODES_TAG_CODE = 'billing-codes'\n\n/**\n * Extension URL stored on a billing CodeSystem to record which billing\n * Organization (obra social) owns / uses this billing code system.\n *\n * Value type: Reference (Organization)\n *\n * Example:\n * extension: [{ url: BILLING_CODES_ORG_EXTENSION, valueReference: { reference: 'Organization/123' } }]\n */\nexport const BILLING_CODES_ORG_EXTENSION = `${FHIR_BASE}/extensions/billing-code-system-organization`\n\n/**\n * Identifier system used to tag every billing ChargeItemDefinition with the ID\n * of the PlanDefinition it belongs to, enabling reliable search via\n * `ChargeItemDefinition?identifier=<system>|<planDefinitionId>`.\n * (The FHIR R4 `instance` search parameter is not supported by Medplum.)\n */\nexport const BILLING_CID_PD_IDENTIFIER_SYSTEM = `${FHIR_BASE}/billing/plan-definition`\n\n/**\n * Usage-context type system used to scope a ChargeItemDefinition to a specific InsurancePlan.\n * useContext.code.system = BILLING_CID_CONTEXT_SYSTEM\n * useContext.code.code = BILLING_CID_CONTEXT_CODE\n * useContext.valueReference → InsurancePlan\n */\nexport const BILLING_CID_CONTEXT_SYSTEM = 'http://terminology.hl7.org/CodeSystem/usage-context-type'\nexport const BILLING_CID_CONTEXT_CODE = 'user'\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["export const FHIR_BASE = 'https://www.cdrossi.com/fhir'\nexport const EGES_SYSTEM_BASE = 'https://www.cdrossi.com/eges'\n\nexport const EGES_PACIENTE_SYSTEM = `${EGES_SYSTEM_BASE}/paciente`\nexport const EGES_DOCUMENTO_SYSTEM = `${EGES_SYSTEM_BASE}/documentos`\nexport const EGES_SUCURSAL_SYSTEM = `${EGES_SYSTEM_BASE}/sucursal`\nexport const EGES_MEDICO_SYSTEM = `${EGES_SYSTEM_BASE}/medico`\nexport const EGES_MEDICO_ASOCIACION_SYSTEM = `${EGES_SYSTEM_BASE}/medico-asociacion`\nexport const EGES_EQUIPO_SYSTEM = `${EGES_SYSTEM_BASE}/equipo`\nexport const EGES_TURNO_SYSTEM = `${EGES_SYSTEM_BASE}/turno`\nexport const EGES_PRACTICA_SYSTEM = `${EGES_SYSTEM_BASE}/practica`\nexport const EGES_PRESTACION_SYSTEM = `${EGES_SYSTEM_BASE}/prestacion`\nexport const EGES_OBRA_SOCIAL_SYSTEM = `${EGES_SYSTEM_BASE}/obra-social`\nexport const EGES_OBRA_SOCIAL_PLAN_SYSTEM = `${EGES_SYSTEM_BASE}/obra-social-plan`\nexport const EGES_CONDICION_RESPUESTA_SYSTEM = `${EGES_SYSTEM_BASE}/condicion-respuesta`\nexport const RENAPER_BASE = 'https://www.argentina.gob.ar/interior/renaper'\nexport const MATRICULA_NACIONAL_SYSTEM = `${RENAPER_BASE}/matricula-nacional`\nexport const MATRICULA_PROVINCIAL_SYSTEM = `${RENAPER_BASE}/matricula-provincial`\n\nexport const SCHEDULING_PARAMETERS_EXTENSION_URL = 'http://medplum.com/fhir/StructureDefinition/scheduling-parameters'\nexport const REQUIRES_PRACTITIONER_EXTENSION_URL = `${FHIR_BASE}/requires-practitioner`\nexport const SERVICE_TYPE_SYSTEM = `${FHIR_BASE}/service-type`\n\nexport const PRACTITIONER_ROLE_SYSTEM = `${FHIR_BASE}/CodeSystem/practitioner-role`\nexport const PRACTITIONER_ROLE_REFERRING_CODE = 'referring'\n\nconst MIGRATE_TASK_BASE = 'eges-migrate'\nexport const MIGRATE_TASK_SYSTEM = `${FHIR_BASE}/tasks`\nexport const MIGRATE_TASK_INPUT_SYSTEM = `${FHIR_BASE}/task-inputs`\nexport const MIGRATE_TASK_OUTPUT_SYSTEM = `${FHIR_BASE}/task-outputs`\nexport const MIGRATE_PRACTITIONER_TASK_CODE = `${MIGRATE_TASK_BASE}-practitioner`\nexport const MIGRATE_PATIENT_TASK_CODE = `${MIGRATE_TASK_BASE}-patient`\nexport const MIGRATE_DEVICE_TASK_CODE = `${MIGRATE_TASK_BASE}-device`\nexport const MIGRATE_SITE_TASK_CODE = `${MIGRATE_TASK_BASE}-site`\nexport const MIGRATE_SERVICE_TASK_CODE = `${MIGRATE_TASK_BASE}-service`\nexport const MIGRATE_APPOINTMENT_TASK_CODE = `${MIGRATE_TASK_BASE}-appointment`\nexport const MIGRATE_INSURER_TASK_CODE = `${MIGRATE_TASK_BASE}-insurer`\nexport const REVIEW_APPOINTMENT_TASK_CODE = 'review-appointment'\nexport const SYNCHRONIZE_APPOINTMENT_TASK_CODE = 'synchronize-appointment'\n\n/**\n * Coding system for `Task.businessStatus` values used by the Rossi admin\n * review workflow. Distinct from `Task.status` (FHIR lifecycle), which is\n * driven by the booking pipeline. `businessStatus` captures staff-side\n * review state that is independent of whether the appointment has been\n * confirmed in EGES.\n */\nexport const TASK_BUSINESS_STATUS_SYSTEM = `${FHIR_BASE}/CodeSystem/task-business-status`\n\n/**\n * `Task.businessStatus.coding[].code` value set by the reception role when\n * marking a review as seen/checked, without confirming the underlying\n * appointment.\n */\nexport const TASK_BUSINESS_STATUS_REVIEWED_CODE = 'reviewed'\n\n/** `system|code` search token for `Task?business-status` filters on the reviewed state. */\nexport const TASK_BUSINESS_STATUS_REVIEWED_TOKEN =\n `${TASK_BUSINESS_STATUS_SYSTEM}|${TASK_BUSINESS_STATUS_REVIEWED_CODE}`\n\n/**\n * Task.code value identifying a \"send appointment confirmation email\" job. The\n * code is fully self-describing (not an `eges-migrate-*` migration code) — these\n * Tasks are produced by the appointments-portal $create flow rather than the\n * EGES migration pipeline.\n */\nexport const SEND_APPOINTMENT_CONFIRMATION_EMAIL_TASK_CODE = 'send-appointment-confirmation-email'\n\n/** Task.input code for the booking-session UUID (mirrors `ServiceRequest.requisition.value`). */\nexport const EMAIL_TASK_INPUT_SESSION_GROUP_ID = 'session-group-id'\n\n/** Task.input code for the recipient email address resolved from `Patient.telecom`. */\nexport const EMAIL_TASK_INPUT_RECIPIENT_EMAIL = 'recipient-email'\n\n/** Task.input code carrying `Patient/{id}` for the recipient's patient record. */\nexport const EMAIL_TASK_INPUT_PATIENT_REF = 'patient-ref'\n\n/** Task.input code for the optional IANA timezone used to format appointment times in the email. */\nexport const EMAIL_TASK_INPUT_TIMEZONE = 'timezone'\n\n/** Task.output code for the recipient email address that was actually used. */\nexport const EMAIL_TASK_OUTPUT_RECIPIENT = 'recipient'\n\n/** Task.output code for the count of appointments included in the email body. */\nexport const EMAIL_TASK_OUTPUT_APPOINTMENT_COUNT = 'appointment-count'\n\n/**\n * Task.output code for the rendered email subject line. Captured on the Task\n * in both success and failure paths so the rendered message can be inspected\n * locally (no SMTP/SES configured) and audited in prod (no need to hunt\n * through SES logs).\n */\nexport const EMAIL_TASK_OUTPUT_SUBJECT = 'subject'\n\n/** Task.output code for the rendered email HTML body. Companion to `subject`/`text`. */\nexport const EMAIL_TASK_OUTPUT_HTML = 'html'\n\n/** Task.output code for the rendered email plain-text body. Companion to `subject`/`html`. */\nexport const EMAIL_TASK_OUTPUT_TEXT = 'text'\n\n/**\n * Task.code for the user-invitation email. Rossi Admin invites a user\n * (`sendEmail:false` so Medplum sends nothing) and enqueues this Task; the\n * `send-user-invite-email` bot resolves the one-time set-password link from the\n * user's `UserSecurityRequest` and sends a branded invitation email.\n */\nexport const SEND_USER_INVITE_EMAIL_TASK_CODE = 'send-user-invite-email'\n\n/**\n * Task.input code carrying `ProjectMembership/{id}` for the invited member. The\n * bot resolves the recipient email, display name, and the `User` (for the\n * one-time `UserSecurityRequest`) from that membership server-side — it never\n * trusts a caller-supplied recipient, so a crafted Task cannot redirect an\n * invite secret to another address.\n */\nexport const INVITE_TASK_INPUT_MEMBERSHIP_REF = 'invite-membership-ref'\n\nexport const HL7_IMPORT_TASK_SYSTEM = 'http://example.org/CodeSystem/hl7-import-tasks'\nexport const HL7_IMPORT_APPOINTMENT_TASK_CODE = 'import-orm-o01-appointment'\nexport const HL7_IMPORT_TASK_INPUT_SYSTEM = 'http://example.org/CodeSystem/hl7-import-task-inputs'\nexport const HL7_IMPORT_TASK_OUTPUT_SYSTEM = 'http://example.org/CodeSystem/hl7-import-task-outputs'\n\n// ─── ServiceRequest ──────────────────────────────────────────────────────────\n\n/**\n * Identifier system used as `ServiceRequest.requisition.system` to correlate\n * multiple ServiceRequests (one per Appointment) authored in the same\n * appointments-portal wizard session. Maps to FHIR R4 `requisition` — \"A\n * shared identifier common to all service requests that were authorized more\n * or less simultaneously by a single author, representing the composite or\n * group identifier.\"\n */\nexport const SERVICE_REQUEST_GROUP_SYSTEM = `${FHIR_BASE}/service-request-group`\n\n/**\n * Coding system for HealthcareService action (variant) selections recorded\n * on `ServiceRequest.orderDetail[]`. The `code` is the PlanDefinition action\n * id from the contained protocol on the HealthcareService, and `display` is\n * the human-readable action label (e.g. \"Frente y perfil\").\n */\nexport const HS_ACTION_SYSTEM = `${FHIR_BASE}/CodeSystem/hs-action`\n\n/**\n * Coding system for HealthcareService addon selections recorded on\n * `ServiceRequest.orderDetail[]`. Same id/label shape as HS_ACTION_SYSTEM —\n * the distinct URI lets readers filter action vs. addons without ordering\n * assumptions on orderDetail.\n */\nexport const HS_ADDON_SYSTEM = `${FHIR_BASE}/CodeSystem/hs-addon`\n\n// ─── Medical order documents (portal requisitions) ──────────────────────────\n\n/**\n * Coding system used on `DocumentReference.type` for portal-uploaded medical\n * orders. Doubles as an identifier system so we can dedupe a `(session, order)`\n * pair across the sibling `Appointment/$create` calls the portal issues in\n * parallel for a multi-study booking.\n */\nexport const MEDICAL_ORDER_DOCUMENT_SYSTEM = `${FHIR_BASE}/CodeSystem/medical-order-document`\n\n/** `DocumentReference.type.coding[0].code` value paired with MEDICAL_ORDER_DOCUMENT_SYSTEM. */\nexport const MEDICAL_ORDER_DOCUMENT_CODE = 'medical-order'\n\n/**\n * Complex extension attached to DocumentReference. Sub-extensions carry the\n * structured OCR metadata (doctor, diagnosis, insurer, plan, patient data, …)\n * the appointments-portal parses from each scanned medical order.\n */\nexport const ORDER_METADATA_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/order-metadata`\n\n// ─── PlanDefinition type ─────────────────────────────────────────────────────\n\n/** Coding system for custom PlanDefinition types */\nexport const PD_TYPE_SYSTEM = `${FHIR_BASE}/CodeSystem/plan-definition-type`\n\n/** Type code that marks a PlanDefinition as a protocol-group (wrapping multiple concrete PDs) */\nexport const PD_TYPE_PROTOCOL_GROUP = 'protocol-group'\n\n// ─── HealthcareService model ──────────────────────────────────────────────────\n\n/** Identifier system for service codes on HealthcareService (mirrors the ServiceCodes CodeSystem URL) */\nexport const SERVICE_CODES_SYSTEM = `${FHIR_BASE}/CodeSystem/service-codes`\n\n/** Coding system for service categories on HealthcareService.category */\nexport const SERVICE_CATEGORY_SYSTEM = `${FHIR_BASE}/CodeSystem/service-category`\n\n/** Coding system for specialities on HealthcareService.specialty */\nexport const SPECIALITY_SYSTEM = `${FHIR_BASE}/CodeSystem/speciality`\n\n/** Extension URL for the mandatory PlanDefinition (clinical protocol) reference on HealthcareService */\nexport const HS_PROTOCOL_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/hs-protocol`\n\n/** Extension URL for the optional ChargeItemDefinition (billing) reference on HealthcareService */\nexport const HS_BILLING_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/hs-billing`\n\n/** Extension URL for the back-reference to the HealthcareService (study) for which this PlanDefinition is the protocol group */\nexport const PD_HEALTHCARE_SERVICE_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/pd-healthcare-service`\n\n/**\n * Extension URL for additional search aliases on HealthcareService.\n *\n * Stored as multiple same-URL extensions, each with a `valueString`.\n * These are indexed at weight 1.2 by the search indexer.\n * Using an extension instead of HealthcareService.alias[] because the local\n * FHIR profile does not permit the standard alias field.\n *\n * @example\n * { url: HS_SEARCH_ALIASES_EXTENSION_URL, valueString: \"placa de tórax\" }\n */\nexport const HS_SEARCH_ALIASES_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/hs-search-aliases`\n\n/**\n * @example\n * {\n * url: HS_SEARCH_PROTOCOL_ALIASES_EXTENSION_URL,\n * extension: [\n * { url: \"alias\", valueString: \"placa de tórax\" },\n * { url: \"protocol\", valueString: \"9a9056df-0e54-4c2a-a3ce-eb58405f1ec9\" },\n * { url: \"addon\", valueString: \"a7101b76-6f1a-4562-8689-edaee07d6b95\" },\n * { url: \"addon\", valueString: \"97b7c2ce-6f1a-4562-8689-f21a8673e009\" }\n * ]\n * }\n */\nexport const HS_SEARCH_PROTOCOL_ALIASES_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/hs-search-protocol-aliases`\n\n// ─── Practitioner ────────────────────────────────────────────────────────────\n\n/** Extension URL marking a Practitioner as a technician/operator (patient-facing surfaces must hide the name). */\nexport const PRACTITIONER_IS_TECHNICIAN_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/is-technician`\n\n// ─── Email audit trail ───────────────────────────────────────────────────────\n\n/**\n * Identifier system to dedupe Communication resources auditing sent confirmation\n * emails. The paired Provenance carries no identifier of its own (FHIR R4\n * Provenance has no `identifier` element); it is deduped by its `target`\n * reference to this Communication.\n */\nexport const COMMUNICATION_EMAIL_KEY_SYSTEM = `${FHIR_BASE}/communication-email-key`\n\n// ─── Organization (payer / insurance company) ─────────────────────────────────\n\n/** Identifier system for insurance company (payer) Organization resources */\nexport const INSURER_IDENTIFIER_SYSTEM = `${FHIR_BASE}/CodeSystem/insurers`\n\n/** HL7 organization-type code system */\nexport const ORG_TYPE_SYSTEM = 'http://terminology.hl7.org/CodeSystem/organization-type'\n\n/** organization-type code for payer/insurance */\nexport const ORG_TYPE_PAY_CODE = 'pay'\n\n/** organization-type code for healthcare provider (the main clinic) */\nexport const ORG_TYPE_PROV_CODE = 'prov'\n\n// ─── InsurancePlan ────────────────────────────────────────────────────────────\n\n/** Identifier system for InsurancePlan resources (specific plan products) */\nexport const INSURANCE_PLAN_IDENTIFIER_SYSTEM = `${FHIR_BASE}/CodeSystem/insurance-plans`\n\n// ─── Práctica mapping registry (#202) ────────────────────────────────────────\n\n/**\n * Canonical `url` of the singleton ConceptMap that holds the parametrized\n * práctica → práctica mapping rules (patient insurance / age / sex). The\n * resolver fetches it by this url; there is at most one per project.\n */\nexport const PRACTICA_MAPPING_CONCEPT_MAP_URL = `${FHIR_BASE}/ConceptMap/practica-mapping`\n\n/**\n * Tag applied to the práctica mapping ConceptMap for discovery via\n * `ConceptMap?_tag=<BILLING_CODES_TAG_SYSTEM>|<PRACTICA_MAPPING_TAG_CODE>`\n * (same tag system as the billing CodeSystems).\n */\nexport const PRACTICA_MAPPING_TAG_CODE = 'practica-mapping'\n\n/**\n * Complex extension on each ConceptMap `element.target[]` carrying the\n * conditions under which the mapping applies. Sub-extensions (all optional,\n * ANDed together):\n * - `insurance`: valueReference → InsurancePlan (plan tier) or Organization\n * type `pay` (obra social tier)\n * - `ageRange`: valueRange — patient age in whole years, bounds inclusive\n * - `sex`: valueCode — FHIR administrative gender\n */\nexport const PRACTICA_MAPPING_CONDITION_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/practica-mapping-condition`\n\n/**\n * Extension on the `$resolve-protocol` response Bundle's **meta** carrying\n * the JSON-serialized `EffectivePracticaSet` (valueString) when the caller\n * sent patient context. The operation's registered output type is `Bundle`,\n * so the effective set rides on the Bundle rather than a separate Parameters\n * response — and since Bundle is not a DomainResource (no top-level\n * `extension` element), it lives on `Bundle.meta.extension`.\n */\nexport const EFFECTIVE_PRACTICA_SET_EXTENSION_URL = `${FHIR_BASE}/StructureDefinition/effective-practica-set`\n\n// ─── Billing CodeSystem discovery tag ────────────────────────────────────────\n\n/**\n * Tag system applied to every billing-codes CodeSystem resource,\n * enabling dynamic discovery via `CodeSystem?_tag=<system>|<code>`.\n */\nexport const BILLING_CODES_TAG_SYSTEM = `${FHIR_BASE}/tags`\n\n/**\n * Tag code that marks a CodeSystem as a billing codes system.\n * Every billing CodeSystem must carry:\n * meta.tag = [{ system: BILLING_CODES_TAG_SYSTEM, code: BILLING_CODES_TAG_CODE }]\n */\nexport const BILLING_CODES_TAG_CODE = 'billing-codes'\n\n/**\n * Extension URL stored on a billing CodeSystem to record which billing\n * Organization (obra social) owns / uses this billing code system.\n *\n * Value type: Reference (Organization)\n *\n * Example:\n * extension: [{ url: BILLING_CODES_ORG_EXTENSION, valueReference: { reference: 'Organization/123' } }]\n */\nexport const BILLING_CODES_ORG_EXTENSION = `${FHIR_BASE}/extensions/billing-code-system-organization`\n\n/**\n * Identifier system used to tag every billing ChargeItemDefinition with the ID\n * of the PlanDefinition it belongs to, enabling reliable search via\n * `ChargeItemDefinition?identifier=<system>|<planDefinitionId>`.\n * (The FHIR R4 `instance` search parameter is not supported by Medplum.)\n */\nexport const BILLING_CID_PD_IDENTIFIER_SYSTEM = `${FHIR_BASE}/billing/plan-definition`\n\n/**\n * Usage-context type system used to scope a ChargeItemDefinition to a specific InsurancePlan.\n * useContext.code.system = BILLING_CID_CONTEXT_SYSTEM\n * useContext.code.code = BILLING_CID_CONTEXT_CODE\n * useContext.valueReference → InsurancePlan\n */\nexport const BILLING_CID_CONTEXT_SYSTEM = 'http://terminology.hl7.org/CodeSystem/usage-context-type'\nexport const BILLING_CID_CONTEXT_CODE = 'user'\n"]}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,10 @@ export * from './scheduling/appointment';
3
3
  export type * from './scheduling/extension';
4
4
  export * from './constants';
5
5
  export * from './plan-definition-group';
6
+ export * from './preparation-groups';
7
+ export * from './resolved-protocol';
8
+ export * from './practica-mapping';
9
+ export * from './practica-resolution';
6
10
  export * from './fhir';
7
11
  export type * from './db/types';
8
12
  export * from './search/normalizer';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,mBAAmB,wBAAwB,CAAA;AAC3C,cAAc,aAAa,CAAA;AAC3B,cAAc,yBAAyB,CAAA;AACvC,cAAc,QAAQ,CAAA;AACtB,mBAAmB,YAAY,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,mBAAmB,wBAAwB,CAAA;AAC3C,cAAc,aAAa,CAAA;AAC3B,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,QAAQ,CAAA;AACtB,mBAAmB,YAAY,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA"}
package/dist/index.js CHANGED
@@ -18,6 +18,10 @@ __exportStar(require("./scheduling/slot"), exports);
18
18
  __exportStar(require("./scheduling/appointment"), exports);
19
19
  __exportStar(require("./constants"), exports);
20
20
  __exportStar(require("./plan-definition-group"), exports);
21
+ __exportStar(require("./preparation-groups"), exports);
22
+ __exportStar(require("./resolved-protocol"), exports);
23
+ __exportStar(require("./practica-mapping"), exports);
24
+ __exportStar(require("./practica-resolution"), exports);
21
25
  __exportStar(require("./fhir"), exports);
22
26
  __exportStar(require("./search/normalizer"), exports);
23
27
  __exportStar(require("./search/alias-builder"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,2DAAwC;AAExC,8CAA2B;AAC3B,0DAAuC;AACvC,yCAAsB;AAEtB,sDAAmC;AACnC,yDAAsC","sourcesContent":["export * from './scheduling/slot'\nexport * from './scheduling/appointment'\nexport type * from './scheduling/extension'\nexport * from './constants'\nexport * from './plan-definition-group'\nexport * from './fhir'\nexport type * from './db/types'\nexport * from './search/normalizer'\nexport * from './search/alias-builder'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,2DAAwC;AAExC,8CAA2B;AAC3B,0DAAuC;AACvC,uDAAoC;AACpC,sDAAmC;AACnC,qDAAkC;AAClC,wDAAqC;AACrC,yCAAsB;AAEtB,sDAAmC;AACnC,yDAAsC","sourcesContent":["export * from './scheduling/slot'\nexport * from './scheduling/appointment'\nexport type * from './scheduling/extension'\nexport * from './constants'\nexport * from './plan-definition-group'\nexport * from './preparation-groups'\nexport * from './resolved-protocol'\nexport * from './practica-mapping'\nexport * from './practica-resolution'\nexport * from './fhir'\nexport type * from './db/types'\nexport * from './search/normalizer'\nexport * from './search/alias-builder'\n"]}
@@ -41,6 +41,13 @@ export interface ProtocolActionInfo {
41
41
  readonly protocolRef: string;
42
42
  readonly protocolDisplay: string;
43
43
  readonly protocolCode: string;
44
+ /**
45
+ * EGES pra_id of the referenced práctica, when stamped on the action's
46
+ * `code[]` (an `EGES_PRACTICA_SYSTEM` coding alongside the service-type
47
+ * coding). Persisted by {@link buildProtocolGroup} so admin UIs can show
48
+ * the id without re-reading each order-set PD.
49
+ */
50
+ readonly praId?: string;
44
51
  readonly duration?: Duration;
45
52
  /**
46
53
  * Whether this action is pre-selected in a **configured** protocol-group.
@@ -73,6 +80,8 @@ export interface ProtocolGroupActionEntry {
73
80
  readonly ref: string;
74
81
  readonly display: string;
75
82
  readonly code: string;
83
+ /** EGES pra_id of the referenced práctica, stamped on the action's `code[]`. */
84
+ readonly praId?: string;
76
85
  readonly duration?: Duration;
77
86
  /**
78
87
  * Only meaningful on addon entries. When `true`, the addon is always
@@ -220,6 +229,16 @@ export declare function readProtocolSelection(pd: PlanDefinition): ProtocolSelec
220
229
  * @returns the variant's mandatory-addon overrides (empty when none)
221
230
  */
222
231
  export declare function readMandatoryAddonOverrides(variantAction: PlanDefinitionAction): MandatoryAddonOverride[];
232
+ /**
233
+ * Extracts the canonicals of an order-set PD's **default** mandatory add-ons:
234
+ * the `action[id='addons']` sub-actions flagged `requiredBehavior: 'must'`.
235
+ * These are the defaults that {@link resolveVariantMandatoryAddons} combines
236
+ * with a selected variant's `mandatory-addons` overrides.
237
+ *
238
+ * @param orderSetPd - an order-set PlanDefinition
239
+ * @returns canonicals of the default mandatory add-ons (empty when none)
240
+ */
241
+ export declare function getOrderSetDefaultMandatoryRefs(orderSetPd: PlanDefinition): string[];
223
242
  /**
224
243
  * Resolves the effective mandatory add-on canonicals for a selected variant:
225
244
  * the order-set PD defaults, plus the variant's `'add'` overrides, minus its
@@ -1 +1 @@
1
- {"version":3,"file":"plan-definition-group.d.ts","sourceRoot":"","sources":["../src/plan-definition-group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-definition-group.d.ts","sourceRoot":"","sources":["../src/plan-definition-group.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ exports.configureProtocolGroup = configureProtocolGroup;
11
11
  exports.resolveProtocolSelection = resolveProtocolSelection;
12
12
  exports.readProtocolSelection = readProtocolSelection;
13
13
  exports.readMandatoryAddonOverrides = readMandatoryAddonOverrides;
14
+ exports.getOrderSetDefaultMandatoryRefs = getOrderSetDefaultMandatoryRefs;
14
15
  exports.resolveVariantMandatoryAddons = resolveVariantMandatoryAddons;
15
16
  const constants_1 = require("./constants");
16
17
  /**
@@ -107,8 +108,8 @@ function getProtocolGroupHealthcareServiceReference(pd) {
107
108
  function buildProtocolGroup(title, entries, existingId, hsReference) {
108
109
  const actions = entries.map((e) => {
109
110
  var _a;
110
- const subActions = ((_a = e.addons) !== null && _a !== void 0 ? _a : []).map((addon) => buildAction(addon.id, addon.display, addon.ref, addon.code, addon.duration, addon.question, addon.label, addon.mandatory));
111
- const action = buildAction(e.isDefault ? 'default' : e.id, e.display, e.ref, e.code, e.duration, e.question, e.label);
111
+ const subActions = ((_a = e.addons) !== null && _a !== void 0 ? _a : []).map((addon) => buildAction(addon.id, addon.display, addon.ref, addon.code, addon.duration, addon.question, addon.label, addon.mandatory, addon.praId));
112
+ const action = buildAction(e.isDefault ? 'default' : e.id, e.display, e.ref, e.code, e.duration, e.question, e.label, undefined, e.praId);
112
113
  // Top-level actions use exactly-one selection behavior
113
114
  action.selectionBehavior = 'exactly-one';
114
115
  const overrideGroup = buildMandatoryAddonOverrideGroup(e.mandatoryAddonOverrides);
@@ -278,6 +279,12 @@ function getActionServiceCode(action) {
278
279
  .find((c) => c.system === constants_1.SERVICE_TYPE_SYSTEM);
279
280
  return (_b = coding === null || coding === void 0 ? void 0 : coding.code) !== null && _b !== void 0 ? _b : '';
280
281
  }
282
+ function getActionPraId(action) {
283
+ var _a, _b;
284
+ return (_b = ((_a = action.code) !== null && _a !== void 0 ? _a : [])
285
+ .flatMap((cc) => { var _a; return (_a = cc.coding) !== null && _a !== void 0 ? _a : []; })
286
+ .find((c) => c.system === constants_1.EGES_PRACTICA_SYSTEM)) === null || _b === void 0 ? void 0 : _b.code;
287
+ }
281
288
  function precheckToBool(value) {
282
289
  if (value === 'yes') {
283
290
  return true;
@@ -300,6 +307,7 @@ function extractActionInfo(a, isDefault) {
300
307
  protocolRef: a.definitionCanonical,
301
308
  protocolDisplay: (_f = a.title) !== null && _f !== void 0 ? _f : '',
302
309
  protocolCode: getActionServiceCode(a),
310
+ praId: getActionPraId(a),
303
311
  duration: a.timingDuration,
304
312
  prechecked: precheckToBool(a.precheckBehavior),
305
313
  mandatory: a.requiredBehavior === 'must' ? true : undefined,
@@ -332,6 +340,21 @@ function readMandatoryAddonOverrides(variantAction) {
332
340
  }
333
341
  return result;
334
342
  }
343
+ /**
344
+ * Extracts the canonicals of an order-set PD's **default** mandatory add-ons:
345
+ * the `action[id='addons']` sub-actions flagged `requiredBehavior: 'must'`.
346
+ * These are the defaults that {@link resolveVariantMandatoryAddons} combines
347
+ * with a selected variant's `mandatory-addons` overrides.
348
+ *
349
+ * @param orderSetPd - an order-set PlanDefinition
350
+ * @returns canonicals of the default mandatory add-ons (empty when none)
351
+ */
352
+ function getOrderSetDefaultMandatoryRefs(orderSetPd) {
353
+ var _a, _b, _c;
354
+ return ((_c = (_b = (_a = orderSetPd.action) === null || _a === void 0 ? void 0 : _a.find((a) => a.id === 'addons')) === null || _b === void 0 ? void 0 : _b.action) !== null && _c !== void 0 ? _c : [])
355
+ .filter((addon) => addon.requiredBehavior === 'must' && Boolean(addon.definitionCanonical))
356
+ .map((addon) => addon.definitionCanonical);
357
+ }
335
358
  /**
336
359
  * Resolves the effective mandatory add-on canonicals for a selected variant:
337
360
  * the order-set PD defaults, plus the variant's `'add'` overrides, minus its
@@ -405,14 +428,19 @@ function buildMandatoryAddonOverrideGroup(overrides) {
405
428
  })
406
429
  };
407
430
  }
408
- function buildAction(id, title, ref, code, duration, question, labelOverride, mandatory) {
431
+ function buildAction(id, title, ref, code, duration, question, labelOverride, mandatory, praId) {
409
432
  const action = {
410
433
  id,
411
434
  title,
412
435
  definitionCanonical: ref
413
436
  };
414
- if (code) {
415
- action.code = [{ coding: [{ system: constants_1.SERVICE_TYPE_SYSTEM, code }] }];
437
+ if (code || praId) {
438
+ action.code = [{
439
+ coding: [
440
+ ...(code ? [{ system: constants_1.SERVICE_TYPE_SYSTEM, code }] : []),
441
+ ...(praId ? [{ system: constants_1.EGES_PRACTICA_SYSTEM, code: praId }] : [])
442
+ ]
443
+ }];
416
444
  }
417
445
  if (duration) {
418
446
  action.timingDuration = duration;