IT & integrations
Inspect integration metadata, rotate a draft and investigate refused tests
Follow observed wide Clinic administrator controls, actual metadata persistence, structural-test failure and guarded replay without claiming a live connection.
Current source · Source reviewed; exact stated native Clinic Facility Admin UI path and independent authenticated API readbacks observed · 12 min read
Before you begin
- Use an approved isolated training endpoint with no actual production key or certificate. The observed endpoint was explicitly provisioned as a Draft fixture using the actual validated product model; no endpoint-create UI/API success is claimed.
1. Read the exact endpoint, environment and pin
Open Settings → Integration and select the intended endpoint. Read environment, state, package/version, key-reference-held indicator, certificate expiry and provenance separately. The observed endpoint is labelled fictional, Draft/Test, has a loopback unused URL and no actual key/certificate or NPHIES activation. A key-reference indicator does not prove that a secret was retrieved.
12345- Test environment: Environment must match the separately activated configuration.
- Pinned profile version: A package name alone is not a version pin.
- Reference held: The indicator is not a real credential or a successful secret read.
- Evidence absent: The fixture cannot activate.
- Secret-free export: The current export contract asserts key material excluded.
2. Prepare a draft rotation with an actual change reason
Use Rotate certificate. Enter the certificate identity/expiry from the approved operator procedure and a secrets-manager reference only if actually changing that reference; never paste a private key. Use the current lock and state what changed. The pre-reason screenshot deliberately shows Rotate disabled until the required reason is supplied. In this training case only expressly fictional metadata was entered.
1234- Certificate identity metadata: The visible subject says fictional and no certificate bytes.
- Not-after metadata: This is a datetime input, distinct from a certificate handshake.
- Current lock token: A draft save must use the version read by this editor.
- Required reason guard: This frame is the pre-reason state; the disabled button is not a successful save.
3. Verify saved metadata independently
After entering the scoped reason, the observed Clinic Facility Admin used Rotate. The dialog reported saved against current version and a new lock. Normal independent GET confirmed the fictional subject, stored 2027-01-31T09:00:00+00:00 expiry and Draft state, with the existing rotation owner retained. A saved date is not a cryptographic certificate or evidence of external connectivity.
1234- Saved expiry metadata: Independent GET confirms the exact ISO instant.
- Scope-limited change reason: No real cryptographic certificate or live authority is asserted.
- Saved against current version: Draft metadata changed through the supported control.
- New lock token: Subsequent edits must reread the new lock.
4. Reload and distinguish expiry from warning policy
Reload the surface after rotation; the current implementation can leave the separately cached certificate panel stale until refresh. Read exact displayed expiry, named rotation owner and warning policy. The observed browser in Asia/Riyadh displays 12:00 on 31 January 2027 for stored 09:00 UTC; the warning lead time remains unknown. A future expiry metadata badge does not establish onboarding or certification.
1234- Local display timestamp: Stored independent ISO readback is 09:00 UTC; browser display is 12:00 Riyadh.
- Warning threshold unknown: A current expiry does not establish an expiring-soon warning policy.
- Named rotation owner: Ownership remains a separate saved fact.
- Draft retained: No endpoint activation or live transmission occurred.
5. Run structural preflight and recognize the current UI defect
Test connection is a non-transmitting structural preflight, not a network handshake. At this source version the normal API returns checks[].check but the frontend renders checks[].name and crashes to a page error. The separately verified API result is 200 with passed=false/transmitted=false; after the metadata change certificate usability is true, while environment agreement and package loading remain false because no NPHIES configuration exists. Preserve these exact findings and reload; do not describe the error fallback as success or a real payer outage.
12- Current page error: Reload to recover the surface; do not infer test success or external delivery.
- Return control: Preserve the exact response/check contract for installation support.
6. Plan replay only with established environment and original exchange evidence
Safe replay requires the actual persisted exchange and byte-identical retained identity/payload under the configured environment/retry policy. The observed nonexistent synthetic ID was refused before exchange resolution because the Clinic has no NPHIES environment configuration. This tests the missing-environment guard only; it proves no successful replay plan, identity validation, delivery or external response.
1234- Specific refusal toast: No NPHIES configuration means the target environment cannot be established.
- Synthetic non-record ID: No genuine exchange or payload identity was validated here.
- Plan replay: The action plans only; it never transmits.
- Refusal retained: An absent configuration is not a matching environment.
7. Use the redacted export contract and keep its scope explicit
The Export (secret-free) control identifies the configuration export. The server and client require key_material_included=false. Independent normal API inspection confirmed that flag, a redacted endpoint representation and activation=null. The browser download wait was interrupted, so a successfully saved browser file is not claimed. A different-facility Admin received 403 when reading this Clinic endpoint; a complete role/facility boundary matrix still requires its own tests.
12345- Test environment: Environment must match the separately activated configuration.
- Pinned profile version: A package name alone is not a version pin.
- Reference held: The indicator is not a real credential or a successful secret read.
- Evidence absent: The fixture cannot activate.
- Secret-free export: The current export contract asserts key material excluded.
Draft and frozen rotation are different source-defined paths
The source-defined frozen-row rotation creates a Draft successor and retains the predecessor. This demonstration executed the existing Draft save path only. Frozen successor creation, stale-lock refusal, inline-secret refusal, a genuinely valid replay plan and external sandbox certification remain separately unobserved procedures.
Troubleshooting
The certificate count updated but the detailed panel still shows the old value
Reload the surface and independently read back the exact endpoint/certificate state. Do not repeat a successful rotation merely to refresh a stale panel.
1234- Local display timestamp: Stored independent ISO readback is 09:00 UTC; browser display is 12:00 Riyadh.
- Warning threshold unknown: A current expiry does not establish an expiring-soon warning policy.
- Named rotation owner: Ownership remains a separate saved fact.
- Draft retained: No endpoint activation or live transmission occurred.
Source evidence
References are pinned to the private MANSOQ source repository. Repository access is required to open these links.
- repositories/platform/mansoq-web/src/pages/Facility/settings/rcm/IntegrationSettings.tsx:510 · f6e9f05f
- repositories/platform/mansoq-web/src/pages/Facility/settings/rcm/IntegrationSettings.tsx:878 · f6e9f05f
- repositories/platform/mansoq-web/src/pages/Facility/settings/rcm/IntegrationSettings.tsx:1507 · f6e9f05f
- repositories/platform/mansoq-core/mansoq/emr/api/viewsets/rcm/integration.py:70 · f6e9f05f
- repositories/platform/mansoq-core/mansoq/emr/api/viewsets/rcm/integration.py:242 · f6e9f05f
- repositories/platform/mansoq-core/mansoq/emr/api/viewsets/rcm/integration.py:374 · f6e9f05f
- repositories/platform/mansoq-core/mansoq/emr/api/viewsets/rcm/integration.py:479 · f6e9f05f
- repositories/platform/mansoq-core/mansoq/emr/admin/rcm.py:1105 · f6e9f05f