MNCoreServerCapabilityStatement
type: CapabilityStatement
node role: treeRoot
id:
  v: MNCoreServerCapabilityStatement
text:
  status:
    v: extensions
  div:
    v: Generated Narrative: CapabilityStatement MNCoreServerCapabilityStatement МН Core FHIR Server Capability Statement Implementation Guide Version: 0.1.0 FHIR Version: 4.0.1 Supported Formats: json, xml Published on: 2026-05-10 Published by: Эрүүл мэндийн хөгжлийн төв (Health Development Center, Mongolia) Note to Implementers: FHIR Capabilities Any FHIR capability may be 'allowed' by the system unless explicitly marked as 'SHALL NOT'. A few items are marked as MAY in the Implementation Guide to highlight their potential relevance to the use case. FHIR RESTful Capabilities Mode: server МН Core IG FHIR Сервер Workflow дэмжлэг Workflow A — Нэг удаагийн AMB үзлэг: Patient → Coverage (check) → Encounter (AMB, open) → QuestionnaireResponse (form data) → Observation (vital signs) → Condition (diagnosis, ICD-10) → MedicationRequest (EMM36-1) → ServiceRequest (EMM37-2 lab order) → Encounter (PATCH status=finished) Workflow B — Урт хугацааны асрамж (EpisodeOfCare): Patient → EpisodeOfCare (maternity | chronic | pediatric-growth) → Encounter-1 (Episodic, in-progress) → QuestionnaireResponse → RiskAssessment (per visit — WHO SMART ANC) → Observation (measurements) → CarePlan (updated) → Encounter-1 (PATCH status=finished) → Encounter-2 ... Encounter-N → EpisodeOfCare (PATCH status=finished) Cross-org Lab Workflow (IHE LAB-LTW): Clinic: ServiceRequest (EMM37-2) → Task (requested) Lab: Task (in-progress) → Specimen → Observation[] Lab: DiagnosticReport (final) → Task (completed, output=DiagnosticReport) Clinic: Poll Task.status OR receive Subscription notification Security Enable CORS: yes Security services supported: SMART-on-FHIR OAuth2 / Keycloak. Hospital-scoped tenant filter on all read/write operations. Capabilities by Resource/Profile Summary The summary table lists the resources that are part of this configuration, and for each resource it lists: The relevant profiles (if any) The interactions supported by each resource (Read, Search, Update, and Create, are always shown, whi…
url:
  v: http://fhir.mn/fhir/CapabilityStatement/MNCoreServerCapabilityStatement
  l: MNCoreServerCapabilityStatement
version:
  v: 0.1.0
name:
  v: MNCoreServerCapabilityStatement
title:
  v: МН Core FHIR Server Capability Statement
status:
  v: active
date:
  v: 2026-05-10
publisher:
  v: Эрүүл мэндийн хөгжлийн төв (Health Development Center, Mongolia)
contact:
  name:
    v: Эрүүл мэндийн хөгжлийн төв (Health Development Center, Mongolia)
  telecom:
    system:
      v: url
    value:
      v: https://hdc.gov.mn
contact:
  name:
    v: Эрүүл мэндийн хөгжлийн төв (Health Development Center)
  telecom:
    system:
      v: url
    value:
      v: https://hdc.gov.mn
description:
  v: МН Core IG-ийг дэмждэг FHIR серверийн чадавхийн мэдэгдэл. Лабораторийн cross-org workflow, Subscription, QR $extract дэмждэг.
jurisdiction:
  coding:
    system:
      v: urn:iso:std:iso:3166
      l: 3166
    code:
      v: MN
kind:
  v: requirements
fhir version:
  v: 4.0.1
format:
  v: json
format:
  v: xml
rest:
  mode:
    v: server
  documentation:
    v: ## МН Core IG FHIR Сервер ### Workflow дэмжлэг **Workflow A — Нэг удаагийн AMB үзлэг:** ``` Patient → Coverage (check) → Encounter (AMB, open) → QuestionnaireResponse (form data) → Observation (vital signs) → Condition (diagnosis, ICD-10) → MedicationRequest (EMM36-1) → ServiceRequest (EMM37-2 lab order) → Encounter (PATCH status=finished) ``` **Workflow B — Урт хугацааны асрамж (EpisodeOfCare):** ``` Patient → EpisodeOfCare (maternity | chronic | pediatric-growth) → Encounter-1 (Episodic, in-progress) → QuestionnaireResponse → RiskAssessment (per visit — WHO SMART ANC) → Observation (measurements) → CarePlan (updated) → Encounter-1 (PATCH status=finished) → Encounter-2 ... Encounter-N → EpisodeOfCare (PATCH status=finished) ``` **Cross-org Lab Workflow (IHE LAB-LTW):** ``` Clinic: ServiceRequest (EMM37-2) → Task (requested) Lab: Task (in-progress) → Specimen → Observation[] Lab: DiagnosticReport (final) → Task (completed, output=DiagnosticReport) Clinic: Poll Task.status OR receive Subscription notification ```
  security:
    cors:
      v: true
    description:
      v: OAuth2 / Keycloak. Hospital-scoped tenant filter on all read/write operations.
  resource:
    type:
      v: Patient
    profile:
      v: http://fhir.mn/StructureDefinition/mn-core-patient
      l: mn-core-patient
    interaction:
      code:
        v: read
    interaction:
      code:
        v: search-type
    interaction:
      code:
        v: create
    interaction:
      code:
        v: update
    interaction:
      code:
        v: patch
    search param:
      name:
        v: identifier
      type:
        v: token
      documentation:
        v: Register.gov.mn регистрийн дугаараар хайх
    search param:
      name:
        v: family
      type:
        v: string
    search param:
      name:
        v: birthdate
      type:
        v: date
  resource:
    type:
      v: Coverage
    profile:
      v: http://fhir.mn/StructureDefinition/mn-core-coverage
      l: mn-core-coverage
    interaction:
      code:
        v: read
    interaction:
      code:
        v: search-type
    interaction:
      code:
        v: create
    interaction:
      code:
        v: update
    search param:
      name:
        v: patient
      type:
        v: reference
    search param:
      name:
        v: status
      type:
        v: token
  resource:
    type:
      v: Encounter
    profile:
      v: http://fhir.mn/StructureDefinition/mn-core-encounter
      l: mn-core-encounter
    supported profile:
      v: http://fhir.mn/StructureDefinition/mn-core-encounter-amb
      l: mn-core-encounter-amb
    supported profile:
      v: http://fhir.mn/StructureDefinition/mn-core-encounter-episodic
      l: mn-core-encounter-episodic
    documentation:
      v: serviceProvider 1..1 on POST. PATCH exempt (for status updates). Use mn-core-encounter-amb for standalone visits, mn-core-encounter-episodic for EpisodeOfCare-linked visits.
    interaction:
      code:
        v: read
    interaction:
      code:
        v: search-type
    interaction:
      code:
        v: create
    interaction:
      code:
        v: update
    interaction:
      code:
        v: patch
    search param:
      name:
        v: patient
      type:
        v: reference
    search param:
      name:
        v: status
      type:
        v: token
    search param:
      name:
        v: date
      type:
        v: date
    search param:
      name:
        v: episode-of-care
      type:
        v: reference
    search param:
      name:
        v: service-provider
      type:
        v: reference
  resource:
    type:
      v: EpisodeOfCare
    profile:
      v: http://fhir.mn/StructureDefinition/mn-core-episode-of-care
      l: mn-core-episode-of-care
    interaction:
      code:
        v: read
    interaction:
      code:
        v: search-type
    interaction:
      code:
        v: create

v: SMART-on-FHIR

code:
  v: update

code:
  v: patch

name:
  v: patient
type:
  v: reference

name:
  v: status
type:
  v: token

name:
  v: type
type:
  v: token

type:
  v: Appointment
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-appointment
  l: mn-core-appointment
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update
interaction:
  code:
    v: patch
search param:
  name:
    v: patient
  type:
    v: reference
search param:
  name:
    v: status
  type:
    v: token
search param:
  name:
    v: date
  type:
    v: date

type:
  v: Observation
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-observation
  l: mn-core-observation
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update
search param:
  name:
    v: patient
  type:
    v: reference
search param:
  name:
    v: code
  type:
    v: token
search param:
  name:
    v: category
  type:
    v: token
search param:
  name:
    v: encounter
  type:
    v: reference

type:
  v: Condition
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-condition
  l: mn-core-condition
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update
search param:
  name:
    v: patient
  type:
    v: reference
search param:
  name:
    v: code
  type:
    v: token
search param:
  name:
    v: encounter
  type:
    v: reference

type:
  v: Procedure
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-procedure
  l: mn-core-procedure
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: MedicationRequest
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-medication-request
  l: mn-core-medication-request
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update
search param:
  name:
    v: patient
  type:
    v: reference
search param:
  name:
    v: encounter
  type:
    v: reference
search param:
  name:
    v: status
  type:
    v: token

type:
  v: Immunization
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-immunization
  l: mn-core-immunization
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: RiskAssessment
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-risk-assessment
  l: mn-core-risk-assessment
documentation:
  v: WHO SMART ANC: must be created at every ANC Encounter (mn-core-encounter-episodic within a maternity EpisodeOfCare).
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update
search param:
  name:
    v: patient
  type:
    v: reference
search param:
  name:
    v: encounter
  type:
    v: reference

type:
  v: DiagnosticReport
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-diagnostic-report
  l: mn-core-diagnostic-report
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update
search param:
  name:
    v: patient
  type:
    v: reference
search param:
  name:
    v: based-on
  type:
    v: reference
search param:
  name:
    v: status
  type:
    v: token
search param:
  name:
    v: category
  type:
    v: token

type:
  v: Specimen
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-specimen
  l: mn-core-specimen
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: ImagingStudy
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-imaging-study
  l: mn-core-imaging-study
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: ServiceRequest
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-service-request
  l: mn-core-service-request
documentation:
  v: IHE LAB-LTW: Every ServiceRequest for lab/imaging MUST have a corresponding Task (basedOn=ServiceRequest). Lab org creates Task, updates status, links DiagnosticReport in Task.output.
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update
search param:
  name:
    v: patient
  type:
    v: reference
search param:
  name:
    v: status
  type:
    v: token
search param:
  name:
    v: encounter
  type:
    v: reference
search param:
  name:
    v: performer
  type:
    v: reference

type:
  v: Task
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-task
  l: mn-core-task
documentation:
  v: IHE LAB-LTW Task lifecycle: requested → received → accepted → in-progress → completed Task.basedOn = Reference(ServiceRequest) [1..1 for lab tasks] Task.input[serviceRequestRef] = Reference(ServiceRequest) Task.output[diagnosticReportRef] = Reference(DiagnosticReport) [populated when completed] Polling pattern (Clinic): GET /Task?based-on=ServiceRequest/{id}&status=completed
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update
interaction:
  code:
    v: patch
search param:
  name:
    v: patient
  type:
    v: reference
search param:
  name:
    v: based-on
  type:
    v: reference
search param:
  name:
    v: status
  type:
    v: token
search param:
  name:
    v: owner
  type:
    v: reference

type:
  v: QuestionnaireResponse
documentation:
  v: Stored as an immutable legal/audit snapshot of what was submitted. Hospital systems (M2M) send discrete FHIR resources separately; QR is the final complete record. No $extract operation.
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update
search param:
  name:
    v: patient
  type:
    v: reference
search param:
  name:
    v: encounter
  type:
    v: reference
search param:
  name:
    v: questionnaire
  type:
    v: reference
search param:
  name:
    v: status
  type:
    v: token

type:
  v: DocumentReference
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-document-reference
  l: mn-core-document-reference
documentation:
  v: IHE MHD ITI-65: clinical documents (certificates, reports). content.attachment.url or base64.
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: CarePlan
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-care-plan
  l: mn-core-care-plan
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update
interaction:
  code:
    v: patch

type:
  v: Consent
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-consent
  l: mn-core-consent
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: ClinicalImpression
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-clinical-impression
  l: mn-core-clinical-impression
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: RiskAssessment
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-risk-assessment
  l: mn-core-risk-assessment
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: Organization
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-organization
  l: mn-core-organization
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: Practitioner
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-practitioner
  l: mn-core-practitioner
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: PractitionerRole
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-practitioner-role
  l: mn-core-practitioner-role
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: Location
profile:
  v: http://fhir.mn/StructureDefinition/mn-core-location
  l: mn-core-location
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: HealthcareService
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
interaction:
  code:
    v: create
interaction:
  code:
    v: update

type:
  v: Subscription
documentation:
  v: Lab PUSH mechanism: Lab organization POSTs a Subscription for DiagnosticReport?category=LAB&status=final targeting the clinic's webhook. Alternative: Clinic polls Task?based-on=ServiceRequest/{id}&status=completed
interaction:
  code:
    v: read
interaction:
  code:
    v: create
interaction:
  code:
    v: update
interaction:
  code:
    v: delete